我想要像这样运行一个Java jar文件:
java -jar spider.jar
如何在Windows后台运行它?
就像Linux上这样:
nohup java -jar spider.jar > /var/tmp/spider.log 2>&1 &
你可以使用Windows的start
命令:
start /min java -jar spider.jar
这个命令并不完全与nohup
相同; 但如果你希望Java进程在一个单独的最小化窗口中运行,它可能是适合的。请参见http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds.mspx
在Windows系统中,一个进程在其父进程被终止后也被终止并不是正常情况(这与Unix-like系统通常的做法不同)。因此,没有像nohup
这样的直接必要性。如果您想避免与控制台窗口相关联,可以使用javaw
,但重定向将不起作用。
javaw
是一个 GUI 程序,它没有默认的控制台界面。因此,您无法重定向标准流,如 stdout(标准输出流)。 - Joey要实现nohup的行为(比如在微服务、分析工具、服务器批处理任务等场景下,进程在注销后仍然运行),唯一的方法就是将带有start javaw -jar ...
内容的.bat文件作为服务或计划任务运行。
nohup.vbs
文件中,并将该文件所在目录添加到 PATH 环境变量中。Set args=Wscript.Arguments
Set ws=CreateObject("wscript.shell")
ws.Run args(0),0,true
nohup "java -jar spider.jar > /var/tmp/spider.log"