如何将属性传递给Java进程,使用Wrapper.exe作为Windows服务启动?
目标代码调用:
System.getProperty("ADMIN_USERNAME");
答案 0 :(得分:7)
http://wrapper.tanukisoftware.org/doc/english/prop-java-additional-n.html
您可以设置将发送到JVM的“附加参数”(而不是主类),-DADMIN_USERNAME = gandalf应该在那里工作。
wrapper.java.additional.1=-Xrs
wrapper.java.additional.2=-Dprop=TRUE
wrapper.java.additional.3=-DADMIN_USERNAME=gandalf
更新:您必须从 additional.1 开始,并且无间隙地计数(这是针对鞋类列表进入Java属性语法的惯例)。
答案 1 :(得分:0)
您可以在包装器配置文件中设置某些属性,请参阅以下链接:
http://wrapper.tanukisoftware.org/doc/english/properties.html
我相信你也可以配置启动java的包装器并使用java“-Dproperty = value”语法传递其他属性
答案 2 :(得分:0)
这是一个黑暗中的镜头,但您是否考虑过使用JMX与服务进行通信?或者这对你所需要的东西有多大?
Yuval = 8 - )
答案 3 :(得分:0)
@Thilo的回答是正确的,但我觉得我必须补充一点,您必须注意 JAVA_OPTS 环境变量。许多人/服务器都倾向于使用它(例如,远程调试),因为您放入JAVA_OPTS的内容都会作为JVM参数传递给任何新的JVM。如果您设置了此环境变量,则任何wrapper.java.additional.<n>
将被忽略。我发现这很困难:)