Tomcat运行时需要jre的支持,一般有两种方式,一种是用jdk带的jre,另一种无需安装jdk只利用jre。这两种方式的区别在于启动的 时候是利用JAVA_HOME还是利用JRE_HOME(参加Tomcat目录下的RUNNING.txt)。第一种的好处在于编译跟运行时用的是同样的 环境,引用外部包的时候只要能编译通过,运行时一般是没有问题的,即使不把外部包拷贝到Tomcat下的lib目录也可以正常运行。第二种的好处在于部署 的时候比较精简,不需要带上jdk,解压缩后环境设置一下即可。

利用第二种方式,可以实现Tomcat的绿化部署,将Tomcat跟jre打包成zip文件,解压即可,启动时利用批处理设置一下环境变量,下面是我自己的一些脚本:

直接将jre拷贝到Tomcat主目录下,这里为jre7;以下批处理文件也直接放在Tomcat主目录下,如果放到其他目录可以自行修改。

解压缩以后,为防止window防火墙拦截,直接用命令行打开对应8080端口,可根据具体环境修改:
  1. @echo off
  2. ::open the firewall port
  3. netsh firewall add portopening protocol = ALL port = 8080 name = Tomcat mode = ENABLE
  4. exit

设置环境变量并启动Tomcat:

  1. @echo off
  2. set JRE_HOME=%cd%\jre7
  3. .\bin\startup.bat

关闭Tomcat:

  1. @echo off
  2. set JRE_HOME=%cd%\jre7
  3. .\bin\shutdown.bat
如果不想出现Tomcat窗口,可以将Tomcat安装为服务,利用bin目录的service.bat进行安装。但注意service.bat中默认只查找jdk路径,如果只设置JRE_HOME的话,会导致安装失败,如果设置JAVA_HOME的话可以直接启动。为了只用jre进行绿化,需要修改service.bat内容,具体把下面两行:
  1. rem Set the server jvm from JAVA_HOME
  2. set "PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll"
  3. if exist "%PR_JVM%" goto foundJvm
  4. rem Set the client jvm from JAVA_HOME
  5. set "PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dll"
  6. if exist "%PR_JVM%" goto foundJvm

改为:

  1. rem Set the server jvm from JAVA_HOME
  2. set "PR_JVM=%cd%\jre7\bin\client\jvm.dll"
  3. if exist "%PR_JVM%" goto foundJvm
  4. rem Set the client jvm from JAVA_HOME
  5. set "PR_JVM=%cd%\jre7\bin\client\jvm.dll"
  6. if exist "%PR_JVM%" goto foundJvm

这样,就可以利用下面脚本进行服务启动了,放在Tomcat主目录下,如果没安装服务则安装,没启动就启动:

  1. @echo off
  2. set JRE_HOME=%cd%\jre7
  3. sc query tomcat6 | find "SERVICE_NAME: tomcat6" > nul
  4. if %errorlevel% EQU 0 (echo Tomcat6已经安装) else (call .\bin\service.bat install)
  5. sc query tomcat6 | find "STATE              : 4  RUNNING" > nul
  6. if %errorlevel% EQU 0 (echo Tomcat6已经启动) else (net start tomcat6)
  7. exit

Tomcat与Jre绿色环境配置(生产环境)的更多相关文章

  1. Yii2 环境配置生产环境和测试环境

    默认的Debug配置 在入口文件web/index.php中 defined('YII_DEBUG') or define('YII_DEBUG', true);defined('YII_ENV') ...

  2. 转 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换

                                      软件开发的一般流程为工程师开发 -> 测试 -> 上线,因此就涉及到三个不同的环境,开发环境.测试环境以及生产环境,通常 ...

  3. 分离Webpack开发环境与生产环境的配置

    这是Webpack+React系列配置过程记录的第五篇.其他内容请参考: 第一篇:使用webpack.babel.react.antdesign配置单页面应用开发环境 第二篇:使用react-rout ...

  4. webpack深入场景——开发环境和生产环境配置

    以前自己写一小项目时,webpack的配置基本就是一套配置,没有考虑生产环境和开发环境的区分,最近在做一个复杂的商城项目接触到了webpack的高级配置,经过两天的研究,写出了一份目前来说比叫满意的配 ...

  5. 记录自己的 django管理 开发环境 和 生产环境 配置过程

    背景:自己的博客部署到服务器了,可每次上传服务器都要把配置重新该,包括数据库链接也得改,于是就需要管理开发环境和生产环境配置. 1, 这是目录结构,在blog下新建一个settings包,里面新建有c ...

  6. [原创] 分享一下Sencha 三种环境(开发环境、测试环境、生产环境)的优雅配置方案

    背景介绍: 在一个AspNet MVC Web API的后端Web开发项目中,使用了Sencha6.5+作为前端表现技术. 在进行两种开发框架的物理文件整合的时候,笔者不想把他俩的物理文件都“揉”在一 ...

  7. Webpack4 学习笔记八 开发环境和生产环境配置

    webpack resolve属性 webpack 区分开发环境和生产环境 webpack resolve属性 该选项的作用是设置模块如何被解析. resolve.alias: 设置别名, 在vue中 ...

  8. Webpack配置区分开发环境和生产环境

    在项目开发的时候,我们通常会将程序分为开发环境和生产环境(或者叫线上环境),开发环境通常指的是我们正在开发的这个阶段所需要的一些环境配置,也就是方便我们开发人员调试开发的一种环境:生产环境通常指的是我 ...

  9. angular 配置开发环境、测试环境、生产环境

    1. 配置开发环境.测试环境.生产环境 (1). environment.ts - 开发环境: 用于程序开发 (创建项目时自动生成) export const environment = { prod ...

随机推荐

  1. python用二进制读取文件

    python二进制读取文件 很多时候,都需要用到二进制读取文件.毕竟很多信息不是以文本的形式存储.例如:图片,音乐等等.这些东西都是有规则的二进制文件. 在python中,二进制读取采用rb的方式. ...

  2. jquery-简单拖拽代码

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. sqlserver中分区函数 partition by的用法

    partition  by关键字是分析性函数的一部分,它和聚合函数(如group by)不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录, partition  by ...

  4. 单节点下多个Tomcat服务器并存的端口号配置

    一个服务器节点同时安装多个tomcat服务器时,如果仅仅修改访问端口号则会提示端口冲突启动失败,还需要修改另外端口号解决,一共需要修改3处地方,修改如下: 编辑配置文件:server.xml 1.首先 ...

  5. 第一个JSP

    还是大一暑假学的Java,知识掌握了第一阶段的Java基础知识, 后面想自己进阶第二阶段,学习JavaWeb,一直拖到现在直接从Java第二阶段写了~~~ 希望指正: 这次主要还是第一个Hello W ...

  6. html学习第一天笔记——第七章节

    第7章 CSS样式基本知识<span style="color:blue"> </span>嵌入式css样式,写在当前的文件中[**********]嵌入式 ...

  7. iOS 消息推送(APNs) 傻瓜式教程

    也可以去我的简书页面查看这篇文章 首先: 1.做iOS消息推送需要真机测试 2.做iOS消息推送需要有付费的开发者账号 是否继续看帖? 先学习一下相关的知识吧! 因为中途可能会遇到一些问题,这篇文章或 ...

  8. php_codesninffer phpcs用法学习使用:

    18:34 2016/1/12php_codesninffer phpcs用法学习使用:可以加一个参数设置结果输出为各种格式:如source格式:$ phpcs -s --report=source ...

  9. POJ 2386 题解

    Lake Counting 描述 Due to recent rains, water has pooled in various places in Farmer John's field, whi ...

  10. 自己封装一个Log模块

    Unity自己有log系统,为什么要自己封装一个 1.不好用,只能在pc上记录log文件,移动平台是没有的 2.在开发时期的log,不想在正式版里面出现.没有一个统一的开关来控制是不是要显示log,要 ...