我开发了一个Java控制台应用程序,在启动时打开控制台窗口并保持在前台,我想在后台启动该应用程序。
现在我通过此命令行启动应用程序:
java -jar myapp.jar
有没有办法实现这种行为? 这足以改变命令行参数,或者我需要对代码进行一些更改?
答案 0 :(得分:13)
答案取决于操作系统。
*nix: <your command> &
Windows: (opens a new console): start <your command>
Windows: (doesn't open a new console): start /b <your command>
答案 1 :(得分:6)
如果您在基于unix的任何内容中执行此操作,则可以附加&amp;到最后会产生一个新线程并保持它在后台运行。
java -jar myapp.jar &
答案 2 :(得分:4)
如果您真的希望它在后台运行,java -jar myapp.jar &
将完成这项工作。这样,当shell关闭时它仍然会死,但你可以继续使用你的shell。
如果您真的希望它作为守护程序运行,nohup java -jar myapp.jar &
将完成这项工作。这样,当shell关闭时它将继续存在。
如果您希望这是可靠的,可以准备一个init脚本或upstart job definition,或者通过Vixie cron(8)
@reboot
说明符运行它以使其在启动时启动。
答案 3 :(得分:3)
鉴于您使用的是Windows,您可能会考虑使用Java Service Wrapper。我过去在项目中使用过它。