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

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

  1. OS = Windows
  2. Tomcat = tomcat 6.0.27

请帮我?

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

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

或者在Windows中:

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

在启动Tomcat之前执行此操作

对于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" 

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

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

或者在Windows中:

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

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

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

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

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

2)在CentOs上需要在{TOMCAT_HOME} / bin / path中创建setenv.sh并插入这样的代码:

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

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