【发布时间】:2020-03-04 08:27:51
【问题描述】:
我有一个在 AWS Elastic Beanstalk 或我的本地机器上运行的 Tomcat 应用程序。
每当我想启动应用程序时,我都必须向它传递许多-Dkey=value 选项。
这些选项的值取决于我运行的环境(例如,dev、prod、staging 或 qa,...)。
是否可以将这些选项集存储在一个文件中(比如说qa.properties、dev.properties 或prod.properties,...),以便我可以将-property_file=dev.properties 之类的内容传递给 JVM 以启动开发环境中的java应用?
将-property_file=dev.prperties 传递给JVM 比将-Ddev_key1=dev_value1 -Ddev_key2=dev_value2 -Ddev_key3=dev_value3 ... 传递给JVM 更优雅。
我在java -help 中没有找到这样的选项。
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
-server to select the "server" VM
The default VM is server,
because you are running on a server-class machine.
-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A : separated list of directories, JAR archives,
and ZIP archives to search for class files.
-D<name>=<value>
set a system property
-verbose:[class|gc|jni]
enable verbose output
-version print product version and exit
-version:<value>
Warning: this feature is deprecated and will be removed
in a future release.
require the specified version to run
-showversion print product version and continue
-jre-restrict-search | -no-jre-restrict-search
Warning: this feature is deprecated and will be removed
in a future release.
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions with specified granularity
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions with specified granularity
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-agentlib:<libname>[=<options>]
load native agent library <libname>, e.g. -agentlib:hprof
see also, -agentlib:jdwp=help and -agentlib:hprof=help
-agentpath:<pathname>[=<options>]
load native agent library by full pathname
-javaagent:<jarpath>[=<options>]
load Java programming language agent, see java.lang.instrument
-splash:<imagepath>
show splash screen with specified image
See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.
【问题讨论】:
-
您是否考虑将这些选项放入您的 tomcat 文件夹中的
bin/setenv.bat或bin/setenv.sh中?更准确地说是在JAVA_OPTSvar -
这将是一个很好的小脚本。
-
java @file,但它似乎需要 Java 9 或更高版本。在 Linux 下,您可以使用类似java $(<file)或您的 shell 提供的任何等效项。 -
我的 Tomcat 在 AWS Elastic Beanstalk 上运行。这让我不方便在
bin/setenv.sh中设置这些选项。
标签: java tomcat jvm jvm-arguments