如何在没有控制台的情况下运行java程序

时间:2010-07-03 09:13:25

标签: java command-line headless

即使终端关闭,我也需要运行java程序.... 在服务器....

4 个答案:

答案 0 :(得分:5)

在Unix和GNU / Linux系统上,您可以使用nohup这样运行程序,假设它是一个jar:

nohup java -jar program.jar &

要将程序的输出运行到文本文件中以便以后可以查看它,您可以这样做:

nohup java -jar program.jar > program.log &

有些软件包会将您的Java程序包装到服务中,这比裸java进程更易于管理。

您可能还想使用“进程包装器”(可能是Launch4J?)为您的进程提供有意义的名称,否则所有Java程序都将显示为{{1}在进程列表中,这不是非常具有说明性的。

答案 1 :(得分:2)

nohup的“替代”将是screenscreen非常有用,允许您运行任何任务,分离屏幕,并让它在后台运行。你可以稍后再继续。

  

运行任务:

screen <command_you_want_to_run>
     

然后<ctrl> <a> <d>与...分离   屏幕会话。

     

下次登录时可以   重新连接到屏幕会话:

screen -r
     

如果您有多个屏幕会话   运行你将被提出   他们的细节可以连接到他们   像这样:

screen -r 1234.pts-1.hostname
     

...其中1234.pts-1.hostname是一个   输出中返回值的值   来自screen -r。

答案 2 :(得分:1)

使用javaw命令代替java

答案 3 :(得分:0)

您想使用headless mode。这将导致任何尝试与屏幕,键盘,鼠标等通信的调用失败,但也意味着您不需要X服务器(在Unix上)或访问控制台(在Windows上)。