我们在Windows上的Java应用程序出现的一个重复问题是客户将其作为Windows服务运行,而没有指定Java -Xrs标志。 这样,当pipe理员注销Windows机器时,Java进程接收到一个终止信号并终止,从而导致似乎是一个随机产生的情况。
我想添加到服务器日志文件和监视工具警告有关此configuration问题。 为了做到这一点,我想知道:1.我的Java应用程序是否作为Windows服务运行? 2.是否将-Xrs标志指定为java.exe命令的一部分? 任何想法如何实现这一点是受欢迎的。
发现如何检查-Xrs标志,仍然需要确定是否作为服务运行:
import java.lang.management.ManagementFactory; import java.util.List; public class GetCommandLineFlags { public static void main(String[] args) { System.out.println(new GetCommandLineFlags().isReducedSignal()); } public boolean isReducedSignal() { List<String> flags = ManagementFactory.getRuntimeMXBean().getInputArguments(); for (String flag : flags) { if ("-Xrs".equals(flag)) { return true; } } return false; } }