作为守护进程运行Java控制台应用程序(后台)

作为守护进程运行Java控制台应用程序(后台),java,jvm,jvm-arguments,Java,Jvm,Jvm Arguments,我开发了一个Java控制台应用程序,当启动时,打开一个控制台窗口并保持在前台,我想在后台启动该应用程序 现在,我通过以下命令行启动应用程序: java -jar myapp.jar 有没有办法实现这种行为? 更改命令行参数就足够了,或者我需要对代码进行一些更改?如果您在基于unix的任何系统中执行此操作,则可以在末尾追加&这将生成一个新线程,并使其在后台运行 java -jar myapp.jar & 答案取决于操作系统 *nix: <your command> &

我开发了一个Java控制台应用程序,当启动时,打开一个控制台窗口并保持在前台,我想在后台启动该应用程序

现在,我通过以下命令行启动应用程序:

java -jar myapp.jar
有没有办法实现这种行为?
更改命令行参数就足够了,或者我需要对代码进行一些更改?

如果您在基于unix的任何系统中执行此操作,则可以在末尾追加&这将生成一个新线程,并使其在后台运行

java -jar myapp.jar &

答案取决于操作系统

*nix: <your command> &
Windows: (opens a new console): start <your command>
Windows: (doesn't open a new console): start /b <your command>
*nix:&
Windows:(打开新控制台):开始
Windows:(不打开新控制台):开始/b

如果您真的只想让它在后台运行,
java-jar myapp.jar&
将完成这项工作。这样,当外壳关闭时,它仍然会死亡,但您可以继续使用您的外壳

如果您确实希望它作为守护进程运行,
nohupjava-jarmyapp.jar&
将完成这项工作。这样,当外壳关闭时,它将继续存活


如果您希望这是可靠的,您可以编写一个init脚本,或者通过VixE.Cuth> Cron(8)< /C> >代码>重启< /Cord>说明符,使它在启动时启动。

< P>假定您正在使用Windows,您可以考虑。我过去曾在一个项目中使用过它。

你的问题不清楚。是否要作为Windows服务运行?或者你想要一个控制台窗口?或者两者兼而有之?你想在什么操作系统中实现这一点?我在Windows上,作为Windows服务可能是一个很好的解决方案。有没有办法将Java控制台应用程序作为Windows服务运行?@aleroot,别忘了接受答案。43%真的很低。此外,您可以使用“javaw”而不是“java”,这将在没有控制台窗口的情况下运行您的程序。这通常是基于GUI的java程序的运行方式。我只想指出,这将适用于Unix或Linux计算机,而不是windows。至少在您注销之前是这样。然后它会带上应用程序。使用前面的
nohup