如何在启动tomcat时传递-D附加参数?

时间:2013-02-20 15:56:01

标签: java parameters batch-file tomcat6 environment

我有一个maven项目,运行命令 mvn install 所有项目以及模块编译并成功复制到本地存储库。但现在我想在tomcat6中运行生成的Web应用程序。客户端为tomcat提供了一些参数,如-Dapp.username,-Dapp.username,,一旦项目启动,将在内部使用。但我不知道如何在tomcat6中设置这些附加参数。以下是我的开发环境

  1. OS = Windows
  2. Tomcat = tomcat 6.0.27
  3. 请帮帮我?

6 个答案:

答案 0 :(得分:27)

对于Tomcat 6,您应该将params添加到startup.sh(Windows startup.bat)。对于Tomcat 7及更高版本,您应该在{Catalina Root} /bin/setenv.sh中设置参数,如下所示:

export CATALINA_OPTS="$CATALINA_OPTS -Dapp.username=username -Dapp.password=password"

或者在Windows中:

set CATALINA_OPTS="$CATALINA_OPTS -Dapp.username=username -Dapp.password=password"

注意:请注意开头的$ CATALINA_OPTS,这样就不会消除以前设置的任何值。不这样做会造成很难调试的问题!

如果您设置的参数仅供Tomcat使用,请务必使用CATALINA_OPTS进行设置。

如果您的应用程序将使用参数,请务必使用JAVA_OPTS。 Tomcat还将读取这些参数。这也可以在setenv.sh文件中找到。例如:

export JAVA_OPTS="$JAVA_OPTS -Dapp.username=username -Dapp.password=password"

或者在Windows中:

set JAVA_OPTS="$JAVA_OPTS -Dapp.username=username -Dapp.password=password"

答案 1 :(得分:14)

您可以设置环境变量来执行此操作。例如。在Linux中:

  

export JAVA_OPTS =“ - Dapp.username -Dapp.username”

或者在Windows中:

  

设置JAVA_OPTS =“ - Dapp.username -Dapp.username”

在启动Tomcat之前执行此操作

答案 2 :(得分:6)

您需要设置CATALINA_OPTS系统变量 - 在启动时由Tomcat(并且仅由Tomcat)读取。正如@Betoverse所说,您可以使用以下两种方法进行设置:

export CATALINA_OPTS="-Dapp.username -Dapp.username"

或者在Windows中:

set CATALINA_OPTS="-Dapp.username -Dapp.username"

您可以将该命令添加到UNIX上的~/.profile以自动设置它。

答案 3 :(得分:1)

我在Windows 10和CentOs 7(Linux)上测试了Tomcat 7/8的params。
1)在Windows上需要在 {TOMCAT_HOME} / bin / 路径中创建 setenv.bat 并插入此类代码:

set CATALINA_OPTS=-Dapp.username=admin -Dapp.password=12345

重要:不要使用引号(“”)在Windows上设置参数。

2)在CentOs上需要在 {TOMCAT_HOME} / bin / 路径中创建 setenv.sh 并插入此类代码:

export CATALINA_OPTS="-Dapp.username=admin -Dapp.password=12345"

您还可以创建 {TOMCAT_HOME} /conf/conf.d/custom.conf 并在那里插入相同的导出命令。

答案 4 :(得分:0)

如果您不想更改环境或编辑.sh文件,则可以使用以下内容启动服务器

CATALINA_OPTS="-Dparam1=value1 -Dparam2=value2" catalina.sh start

答案 5 :(得分:0)

在启动tomcat服务器之前,右键单击项目->运行方式->运行配置 第二个标签->- Dname =值,- Dname =值,-Dname = values

+ Dname = value的值被加密了