【问题标题】:How to pass the -D additional parameter while starting tomcat?启动tomcat时如何传递-D附加参数?
【发布时间】:2013-02-05 17:08:33
【问题描述】:

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

  1. 操作系统 = Windows
  2. Tomcat = tomcat 6.0.27

请帮帮我?

【问题讨论】:

    标签: java parameters batch-file tomcat6 environment


    【解决方案1】:

    对于 Tomcat 6,您应该将参数添加到 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 更整洁
    • 尽可能使用 catalina_opts
    • 在给我一个快速追逐之后刚刚验证了这一点:不要在 Windows 中包含引号并使用 % 而不是 $。所以它应该看起来像:set CATALINA_OPTS=%CATALINA_OPTS% -Dapp.username=username -Dapp.password=password (Tomcat 8, Windows 10, Java 8)
    【解决方案2】:

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

    导出 JAVA_OPTS="-Dapp.username -Dapp.username"

    或者在 Windows 中:

    设置 JAVA_OPTS="-Dapp.username -Dapp.username"

    在启动 Tomcat 之前执行此操作

    【讨论】:

    • 为了安全起见,我会做export JAVA_OPTS="${JAVA_OPTS} -Dapp.username -Dapp.username"
    • 但是我在哪里设置这些变量。
    • 你是如何启动tomcat的?在带有 startup.bat 的控制台中?作为服务还是守护进程?
    • 在 bin/startup.bat 的帮助下是的
    • 您可以通过在启动 startup.bat 的同一控制台窗口中执行“SET”命令来设置任一变量,或者您可以一直到 Windows 环境变量设置并在那里执行,随你喜欢
    【解决方案3】:

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

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

    或者在 Windows 中:

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

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

    【讨论】:

    • 我正在使用 Windows。我在哪里设置这个变量。在 windows 环境变量或其他地方。
    • 在 windows 上它是一个环境变量,是的。 Here is a guide 设置它们。或者您可以将startup.bat 编辑为here - 但是这更麻烦。
    【解决方案4】:

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

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

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

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

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

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

    【讨论】:

    • 我的 IT 人员在 CentOS/Linux 上安装了 Tomcat 8,但我找不到对“setenv.sh”的任何引用 - 换句话说,我找不到运行该脚本的地方,如果它存在。此外,我在任何地方都找不到“catalina.sh”。我是否安装了非标准的 Tomcat 8?
    • 你可以自己创建setenv.sh。默认情况下,它只是一个空文件。在 CentO 上,默认路径通常是 /usr/share/tomcat8/bin/setenv.sh ($CATALINA_BASE/bin)。我猜你的 tomcat 是由包管理器(例如 yum)安装的,并且默认配置为服务。所以它是包管理器的标准tomcat。 (stackoverflow.com/questions/12280372/…)
    【解决方案5】:

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

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

    【讨论】:

      【解决方案6】:

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

      +Dname=value ,, 值如何加密

      【讨论】:

        猜你喜欢
        • 2015-11-01
        • 2018-11-10
        • 2020-06-24
        • 2018-10-05
        • 2015-03-03
        • 2021-12-06
        • 1970-01-01
        • 2011-08-10
        • 1970-01-01
        相关资源
        最近更新 更多