我想写一个聊天机器人。我仍然处于起步阶段,但我确实有一个问题。Java,运行外部程序
Process proc = Runtime.getRuntime().exec("notepad.exe");
这实际上使得它不可能退出我的程序,除非我退出记事本。在这个记事本结束之前是否有可能退出Java程序?
我想写一个聊天机器人。我仍然处于起步阶段,但我确实有一个问题。Java,运行外部程序
Process proc = Runtime.getRuntime().exec("notepad.exe");
这实际上使得它不可能退出我的程序,除非我退出记事本。在这个记事本结束之前是否有可能退出Java程序?
您可以通过程序中的单独线程运行外部程序,并在主线程中继续执行程序逻辑,即多线程应用程序是一个很好的解决方案。
即使程序在另一个线程中运行,我也无法退出程序。这是否意味着,如果我想运行一个大型的记忆食物程序,比如Skyrim这样的游戏,它就在Java应用程序中运行,从而终止Java-app进程,意味着终止外部程序? –
首先摧毁子:
Process proc = Runtime.getRuntime().exec("notepad.exe");
proc.destroy();
如果这不起作用,得到进程的进程ID和运行不同的子进程与System.exit(0);
或正常运行kill <pid>
然后退出的Java。
可能重复[什么是java中的守护进程线程](http://stackoverflow.com/questions/2213340/what-is-daemon-thread-in-java) –
是的,但它是平台特定的,非常混乱实现。 – MadProgrammer