假设我有一个类,其主要方法如下,hoge.hoge()
需要很长时间才能完成。
public static void main(String[] args){
hoge.hoge();
}
此应用程序将从命令行执行。我希望应用程序立即成为后台任务,就像有人执行了一样:
java AboveClass &
即。用户应该返回到提示符。有没有办法在Java中实现这个目标?
答案 0 :(得分:1)
不幸的是,不,没有办法将任务变成后台任务。您可以尝试创建一个线程(并使其成为一个守护程序线程),但我认为即使这样,如果从main方法返回并且线程仍在运行,程序也不会返回到提示符。
@Duncan建议提供一个用户可以运行的脚本,该脚本在后台启动Java程序。我推荐这种方法。
如果您需要全Java解决方案,可以尝试使用Java创建脚本。有关如何从Java程序执行命令,请参阅How to execute system commands (linux/bsd) using Java。那么,你将执行“java ClassName&”然后从Java程序。不是最漂亮的解决方案,但它确实有效。当然,它要求“java”命令在路径中。