Java 如何在注销后启动应用程序而不被杀死?
我有一个Java应用程序,它应该在后台的服务器上运行(应用程序可以在没有GUI的情况下通过命令启动)。问题是:当我从服务器注销时,应用程序被终止。我在Linux下寻找类似的Java 如何在注销后启动应用程序而不被杀死?,java,windows,windows-services,Java,Windows,Windows Services,我有一个Java应用程序,它应该在后台的服务器上运行(应用程序可以在没有GUI的情况下通过命令启动)。问题是:当我从服务器注销时,应用程序被终止。我在Linux下寻找类似的nohup。我找到了一些解决方案,但我不确定,什么最适合我的情况(Windows Server 2003,Java应用程序从BAT skcript运行,启动机器后重新启动)?这些解决方案的优缺点是什么 :进程是否确实需要在系统帐户下运行 :但是 我已使用计划任务启动应用程序,并使用选项run asNT AUTHORITY\S
nohup
。我找到了一些解决方案,但我不确定,什么最适合我的情况(Windows Server 2003,Java应用程序从BAT skcript运行,启动机器后重新启动)?这些解决方案的优缺点是什么
- :进程是否确实需要在系统帐户下运行
- :但是
- 我已使用计划任务启动应用程序,并使用选项run as
。但在注销后,应用程序仍然被终止。我能让它工作吗NT AUTHORITY\SYSTEM
- 编写一个windows服务(在Java、C#上——我认为这无关紧要)
- 从您的服务启动应用程序
- 使用将应用程序作为窗口服务运行
它相当成熟和流行(与ServiceEx和RunaService相比)。是的,Windows服务无疑是一种发展方向,但当您将Java应用程序作为Windows服务运行时,有几件事需要注意。本教程介绍了如何使用我们的商用run-anything-as-a-service应用程序AlwaysUp设置java应用程序,其中包括了大多数应用程序:
注意:您几乎肯定需要Windows 2003上的“-Xrs”标志来防止注销时关闭行为,但如果捕获关闭事件,事情可能会变得棘手。让我知道,如果这是一个问题,你的情况 服务是正确的选择。我想你应该问一下@Rup:我不是Java应用程序的程序员,我正在使用的是一个新的应用程序。@Christian:那真的没关系。我的意思是你不必修改Java应用程序。只需将其作为服务运行或从服务运行。您是否有使用特定3d party实用程序的经验,您能推荐一个吗?在你的回答之后,我做了一个网络搜索,找到并查看了。有一个YAJSW、JSW、apachecommons守护程序和Launch4J的比较表。