JAVA自定义变量_Java 系统自定义变量-D

本文详细解析了在配置Tomcat源码运行时,如何设置-Dcatalina.home系统变量来指定Tomcat的安装目录。通过分析Bootstrap启动过程中的setCatalinaHome()方法,了解到该变量的作用是确保Tomcat能找到正确的工作目录。同时,文章还展示了在catalina.bat启动脚本中如何设置相关环境变量,并通过一个简单的Java示例说明如何在程序中获取这些系统属性。
摘要由CSDN通过智能技术生成

在配置Tomcat源码运行时,需要配置运行参数。

其中有一个配置:

在RunAS里面,Main class 填写 org.apache.catalina.startup.Bootstrap  启动类,

然后选择 Arguments ,在 Program arguments 填写  start , 在 VM arguments 中填写 tomcat home 的路径,

如:-Dcatalina.home="D:\tomcat\apache-tomcat-6.0.37-src"

这个-D配置有什么作用呢?

当Bootstrap启动时 调用

start()→init→setCatalinaHome()

其中setCatalinaHome()代码片段如下:

private void setCatalinaHome() {

if (System.getProperty("catalina.home") != null)

return;

File bootstrapJar =

new File(System.getProperty("user.dir"), "bootstrap.jar");

if (bootstrapJar.exists()) {

try {

System.setProperty

("catalina.home",

(new File(System.getProperty("user.dir"), ".."))

.getCanonicalPath());

} catch (Exception e) {

// Ignore

System.setProperty("catalina.home",

System.getProperty("user.dir"));

}

} else {

System.setProperty("catalina.home",

System.getProperty("user.dir"));

}

}

如果

catalina.home为空的话,系统将设置默认的catalina.home。

System.setProperty

("catalina.home",

(new File(System.getProperty("user.dir"), "..")) 而这个不是我想要的。所以需要初始化一个应用系统变量,防止出错。

同时tomcat启动时也有相关配置设置(catalina.bat)如下:

rem Execute Java with the applicable properties

if not "%JPDA%" == "" goto doJpda

if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity

%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%"-Dcatalina.home="%CATALINA_HOME%"-Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

goto end

这些参数都可以在项目中通过System.getProperty()方法获得。相当于一个全局的应用系统变量,随应用系统而生,终止而终止。不是环境变量。

下面一个小例子:

package test;

public class Commander {

public static void main(String[] args) {

String myProp=System.getProperty("prop.custom");

System.out.println(myProp);

}

} 在控制台,用命令行添加运行参数打出结果:

java -Dprop.custom=gobstopper Commander

结果:

gobstopper

咖啡屋教育网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值