如何将属性传递给使用 Wrapper.exe 作为 Windows 服务启动的 Java 进程?
目标代码调用:
System.getProperty("ADMIN_USERNAME");
如何将属性传递给使用 Wrapper.exe 作为 Windows 服务启动的 Java 进程?
目标代码调用:
System.getProperty("ADMIN_USERNAME");
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 属性语法中的约定)。
您可以在包装配置文件中设置某些属性,请参阅此链接:
http://wrapper.tanukisoftware.org/doc/english/properties.html
我相信您还可以将包装器配置为启动 java 并使用 java "-Dproperty=value" 语法传递其他属性
这是在黑暗中拍摄的,但是您是否考虑过使用 JMX 与服务进行通信?或者这是你需要的过度杀伤力?
尤瓦尔=8-)
@Thilo 的回答是正确的,但我觉得我必须补充一点,您必须注意JAVA_OPTS环境变量。许多人/服务器倾向于使用它(例如:远程调试),因为您放入 JAVA_OPTS 的任何内容都会作为 JVM 参数传递给任何新的 JVM。如果您设置了此环境变量,那么任何wrapper.java.additional.<n>
都将被忽略。我在艰难的路上发现了这一点:)