![](/img/trans.png)
[英]How to get JAVA_HOME and CATALINA_HOME environment variables in Java?
[英]How to set JAVA_HOME or CATALINA_HOME if I have more than 1 version used for Projects?
我有不同的项目使用不同版本的JDK(5.0,6.0)和Tomcat(6.0,7.0),那么我应该如何在环境变量中设置JAVA_HOME
和CATALINA_HOME
?
或者,如果我通过.War
文件运行我的应用程序,可能没有必要在环境变量中设置JAVA_HOME
和CATALINA_HOME
? jdk/tomcat
服务器将在我打包时运行我选择的版本(通过Eclipse - > preferences ...)。
在tomcat启动脚本/bin/catalina.sh
,使用以下环境变量:
JAVA_HOME
是用于运行tomcat和Web应用程序的JDK的路径 CATALINA_HOME
是tomcat二进制文件的路径 CATALINA_BASE
是tomcat配置文件的路径 那么,这种方法怎么样? 例如 :
将JDK 5.0安装到: /opt/jdk5
将JDK 6.0安装到: /opt/jdk6
将tomcat 6.0安装到: /opt/tomcat6
将tomcat 7.0安装到: /opt/tomcat7
每个Web应用程序都有自己的文件夹来保存自己的tomcat配置。 例如: /home/web1
用于Web应用程序1
/home/web2
用于Web应用程序2
在每个文件夹中,我们需要以下子目录: conf
, logs
, temp
, webapps
和work
从tomcat安装文件夹(即/opt/tomcat7/
)中复制这些子目录。然后将.war
放到相应的webapps
的文件夹(例如/home/web1/webapps/webappl.war
, /home/web2/webapps/webapp2.war
)。
最后,编写一个脚本来为每个应用程序使用不同的JDK和tomcat启动tomcat。 例如,要启动web1,您的脚本应该看起来像:
JAVA_HOME=/path/to/jdk #eg./opt/jdk6
CATALINA_HOME=/path/to/tomcat/installation #eg./opt/tomcat7
CATALINA_BASE=/home/web1/
export JAVA_HOME JAVA_OPTS CATALINA_HOME CATALINA_BASE
$CATALINA_HOME/bin/catalina.sh start
参考: http : //www.mohancheema.net/appserver/setting-tomcat-to-run-mutiple-instances-of-it
如果在Eclipse中运行它,则可以使用“运行配置”对话框设置需要更改的任何环境变量。 执行指定的运行配置时会自动设置这些设置。 要使用此功能,请右键单击您的项目,选择“运行” - >“运行配置”。 您可以选择“运行配置”,然后转到“环境”选项卡,在那里可以指定所需的自定义变量,还可以覆盖O / S设置的任何内容。
如果您想在eclipse之外执行此操作,并保留专用于每个项目的Tomcat副本,请根据您的操作系统编辑startup.sh或startup.bat文件,然后在那里明确设置environemnt变量。
防爆。 对于项目1:,在/opt/apache-tomcat6-1/bin/startup.sh文件的顶部添加这些行
export JAVA_HOME ='/ opt / jdk1'export JAVA_HOME ='/ opt / apache-tomcat6-1'
防爆。 对于Project 2:,在/opt/apache-tomcat6-2/bin/startup.sh文件的顶部添加这些行
export JAVA_HOME ='/ opt / jdk2'export JAVA_HOME ='/ opt / apache-tomcat6-2'
如果您没有Tomcat的专用副本,那么您可以为每个项目创建一个shell脚本/批处理文件,它将设置这样的必要环境变量,然后调用相应的startup.sh或startup.bat文件。
这些变量由启动Tomcat的脚本使用,否则无关紧要。 您可以在运行startup.sh
脚本之前立即设置它们,也可以编辑catalina.sh
脚本以在脚本本身中设置值(这是一种很好的方法,因为catalina.sh
由其他脚本共享),或者您可以编写自己的脚本来设置变量,然后调用tomcat脚本......有很多可能性。 您无法全局设置变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.