Java Tomcat替换VM参数

Java Tomcat替换VM参数,java,tomcat,servlets,configuration,jvm-arguments,Java,Tomcat,Servlets,Configuration,Jvm Arguments,这可能是一个愚蠢的问题: 我目前有一些web应用程序需要的VM参数。它们类似于: -Dcom.company.custom.var='test' String myvar = getServletContext().getInitParameter("myvar"); 我通过以下代码访问它们: System.getProperty("com.company.custom.config") 我想将它们移到一个tomcat xml文件(server.xml、context.xml等)中,但我不

这可能是一个愚蠢的问题:

我目前有一些web应用程序需要的VM参数。它们类似于:

-Dcom.company.custom.var='test'
String myvar = getServletContext().getInitParameter("myvar");
我通过以下代码访问它们:

System.getProperty("com.company.custom.config")
我想将它们移到一个tomcat xml文件(server.xml、context.xml等)中,但我不确定该怎么做

所以我的问题分为两部分。我应该在哪里(以及如何)将这些变量放入xml,以及如何在代码中访问它们


提前感谢您,如果您已经回答了,请原谅。我对此主题的搜索失败。

如果这些是特定于应用程序的配置项,则它的标准位置是
web.xml中的
。大概是这样的:

<context-param>
    <param-name>myvar</param-name>
    <param-value>value</param-value>
</context-param>

正式来说,所有JVM选项要么转到
setenv.sh
(对于Unix)要么转到
setenv.bat
(对于Windows)。这个文件在Tomcat中,但如果您创建了一个,它将由启动脚本获取

您应该使用它而不是
server.xml
的原因是
server.xml
可能会从一个Tomcat版本更改为另一个版本,但是
setenv.sh
(或.bat)完全是您自定义的


正如您所指出的,通过
System.getProperty(…)

读取此值非常感谢您的回答。它们不是特定于应用程序的。我可以把它们放在tomcat/conf/web.xml中吗?我会试试看。如果行得通,我会把你的答案记为正确的。感谢您的快速回复。这对我来说不是很有效,因为我使用System.getProperty的一些类对ServletContext没有可见性。无论如何,谢谢你的信息。谢谢!我会考虑这样做的。