我在命令提示符下运行Java程序 正常的过程是在成功执行程序后返回提示..成功执行程序后不会回复提示的可能原因是什么
为什么在执行后不会回来提示
通常它会回来,但有时它不会......
答案 0 :(得分:2)
这听起来像是竞争条件。应用程序关闭序列中的某些内容是非确定性的,它可以工作或不起作用,具体取决于各种平台特定(可能是外部)因素。可能没有必要弄清楚这些因素是什么(或可能是),因为它无法帮助您解决问题。
唯一区别在于RAM硬盘容量较慢..可能的原因吗?
这些可能是因素,但它们不是问题的原因。因此,请专注于找出使您的应用程序不确定的原因。
正如其他人所说,没有更多信息(及相关代码),我们只能猜测。
当应用程序无法关闭时,让它为您提供一个线程转储。或者在连接到调试器时尝试将其关闭。这些可能会让你得到一些关于出错的线索。
最后,蛮力解决方案只是让main
方法(或其他)调用System.exit(0)
。但是要注意文件没有刷新的可能性,等等。如果你这样做的话。
答案 1 :(得分:1)
因为它没有完成。如果它有时发生,有时不发生,我的直觉是你有某种竞争条件。如果已经或者没有采取其他行动,可能你的一个清理步骤就会挂起。
如果没有源代码,这将很难调试。
答案 2 :(得分:0)
可能还有一个活动线程正在运行,但它不在“守护进程”模式下。例如,如果您有一个Swing GUI并且所有帧都已关闭,则Event Dispatch线程仍然处于活动状态,因此JVM将不会退出。