多线程在java中的主线程在使用运行时类finish创建的任何进程执行之前完成
我正在使用Runtime类来执行一个软件的安装。但是,它不起作用,这意味着,在我启动作业(使用Runtime类创建)之后,过了一段时间(很快),安装作业就会退出。我认为问题在于主线程必须完成,从而终止使用Runtime类创建的进程。我说得对吗?这里的解决方案是什么
这就是我在主课堂上解雇工作的方式:
try
{
Runtime.getRuntime().exec(cmd);
}
catch(IOException e)
{
//add logging functionality
e.printStackTrace();
}
此命令发出后不久,主功能完成
运行时命令没有问题。这很有效。。我甚至可以看到它启动(我正在通过代码启动安装),然后突然退出
# 1 楼答案
这只是一个猜测,但我认为编程退出是因为你的代码中有一个错误(逻辑),可能是一个很快就会退出的while循环
尽量看好运行时执行的代码
这个过程可能处于僵局。解决方案在评论中,带有一个示例
# 2 楼答案
你可能想看看java。处理类。你可能想要这样的东西:
子流程可能正在接收SIGHUP并退出
编辑:
在这样的背景下,我会想:
# 3 楼答案
创建的进程是主线程的子进程。如果主线程完成,进程将被终止,类似于手动执行命令并按下ctrlc或关闭窗口