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. Scrapy003-项目流程

    Scrapy003-项目流程 @(Spider)[POSTS] 前两篇文章我们了解到Scrapy的原理和安装的相关知识,这节就需要知道创建项目流程的小知识. 根据官方文档:http://scrapy- ...

  2. ssh设置

    方法一:在/etc/hosts.allow中添加允许ssh登陆的ip或者网段 sshd:192.168.1.2:allowsshd:192.168.1.0/24:allow在/etc/hosts.de ...

  3. SQL入门语句之LIKE、GLOB和LIMIT

    一.SQL入门语句之LIKE LIKE用来匹配通配符指定模式的文本值.如果搜索表达式与模式表达式匹配,LIKE 运算符将返回真(true),也就是 1.这里有两个通配符与 LIKE 运算符一起使用,百 ...

  4. vagrant安装及使用方法

    http://www.chenjie.info/1757 http://blog.csdn.net/zsl10/article/category/6324870   --以下转自MaxWellDuva ...

  5. Pyqt show和exec的区别

    Pyqt中 QDialog  show和exec的区别 QDialog的显示有两个函数show()和exec().他们的区别在参考文档上的解释如下: show():显示一个非模式对话框.控制权即刻返回 ...

  6. 工欲善其事-Eclipse设置

    1.注释设置 [重要可以保存使用] 在菜单栏Window--->Preferences--->Java--->Code Style--->Code Templates然后展示C ...

  7. flume到kafka和hbase配置

    # Flume test file# Listens via Avro RPC on port 41414 and dumps data received to the logagent.channe ...

  8. kNN算法python实现和简单数字识别

    kNN算法 算法优缺点: 优点:精度高.对异常值不敏感.无输入数据假定 缺点:时间复杂度和空间复杂度都很高 适用数据范围:数值型和标称型 算法的思路: KNN算法(全称K最近邻算法),算法的思想很简单 ...

  9. MVC 好记星不如烂笔头之 ---> 全局异常捕获以及ACTION捕获

    public class BaseController : Controller { /// <summary> /// Called after the action method is ...

  10. HTML5开发笔记:初窥CANVAS,上传canvas图片到服务器

    项目做到一个裁切图片的功能,就是让用户上传头像的时候可以裁切一下图片,选择一个合适大小位置来作为头像.之中用到了crop.js这个插件,用canvas直接绘制了用户裁切缩放后的图片.裁切的过程这边就不 ...