我正在运行我使用线程的java应用程序... 我在终端上使用ant命令运行这个应用程序.. 但当我关闭我的终端或按ctrl + c,然后正在运行的java程序停止... 请帮我解决这个问题,因为我想继续运行这个程序......
答案 0 :(得分:1)
如果您终止Java进程,Java将不再运行。如果您希望线程持续运行,则Java程序必须保持活动状态。
用ant调用这样的程序通常不是这样做的。在类Unix系统上,您通常会通过/etc/init.d启动脚本在后台运行这样的程序。在Windows中,相当于将程序作为服务启动,但我不确定让Java以这种方式运行所涉及的错综复杂。
如果你正在从一个concole运行一些东西 - 如何不杀死它并最小化控制台?如果你是从Linux(或Cygwin)启动它,只需在命令行末尾添加一个&
,该过程将在后台运行。
告诉我们更多有关您的环境的信息,以及您准备采取的妥协措施(例如,在任务栏中设置最小化的控制台窗口),我们可以为您提供更多帮助。目前,我能给出的唯一明确答案是“是的 - Ctrl-C会杀死你的程序(如预期的那样)。如果你想让它继续运行,不要告诉它停止运行。” : - )
答案 1 :(得分:1)
答案 2 :(得分:1)
查看Linux的screen命令。
答案 3 :(得分:0)
在后台运行ant命令并将其输出重定向到文件:
ant &> my.log &
。
注意:这个问题似乎与线程无关(除非我误解了它)。
答案 4 :(得分:0)
听起来你想要守护你的蚂蚁任务。我建议使用以下命令:
nohup ant &> ant.log < /dev/null &
nohup
将允许程序在关闭终端后继续运行。
答案 5 :(得分:0)
我想这是理想的行为。如果您终止申请,它将被关闭。
如果您希望在后台运行该应用程序,您应该考虑将其作为Windows服务或守护程序。
如果您希望继续在* nix上将其作为应用程序运行,可以考虑使用GNU Screen。
答案 6 :(得分:0)
我很惊讶没有人提到过于着名的Java Service Wrapper。如果您正在开发长期运行的流程(a.k.a服务),这是一个很好的软件。