我有一个Java应用程序,它应该在后台运行在服务器机器上(应用程序可以通过没有GUI的命令启动)。问题是:当我从服务器注销时,应用程序被杀死。我在Linux下寻找类似nohup
之类的东西。我发现了一些解决方案,但我不确定,对我的情况最好的是什么(Windows Server 2003,从BAT-Skript运行Java应用程序,启动机器后重启)?这些解决方案的优缺点是什么?
instsrv
and srvany
:但srvany should should never be used in a production environment NT AUTHORITY\SYSTEM
启动了计划任务的应用程序。但是在注销后,应用程序仍然被杀死。我可以使用吗?答案 0 :(得分:3)
答案 1 :(得分:3)
在没有用户登录的情况下运行进程的唯一方法是让进程作为Windows服务运行,或者至少由Windows服务调用。
答案 2 :(得分:1)
只是添加上述答案。
考虑使用http://wrapper.tanukisoftware.com。 它相当成熟和流行(与ServiceEx和RunAsService相比)。
答案 3 :(得分:0)
是的,Windows服务绝对是可行的方法,但是当您将Java应用程序作为Windows服务运行时,需要注意一些事项。本教程介绍了如何使用我们的商业运行任务即服务应用程序设置Java应用程序,其中大多数都是AlwaysUp:
http://www.coretechnologies.com/products/AlwaysUp/Apps/RunJavaApplicationAsAService.html
注意:你几乎肯定需要" -Xrs" Windows 2003上的标志,以防止关闭注销行为,但如果您正在捕获关闭事件,事情可能会变得棘手。请告诉我这是否适合您的情况。