Windows上的命令行程序随机冻结。 Ctrl-C重新激活它们

问题描述 投票:0回答:1

我正在用Java编写一个简单的程序,有时它会随机冻结而不会响应。当我尝试用Ctrl-C而不是退出来结束它时,程序恢复生机并再次开始正常工作。我没有发布我的代码,因为我已经注意到Windows上的其他命令行程序的这种行为,所以它似乎不是我的代码特定的任何东西。该程序最终将在无头服务器上全天候运行,因此如果它不时地停止工作,你就会明白为什么它会成为一个严重的问题。提前致谢。任何帮助表示赞赏。

java windows command-line
1个回答
0
投票

这听起来有点像选择问题:如果在控制台窗口中进行选择,它会冻结控制台输出。下次应用程序尝试刷新到控制台时,它将停止,直到选择被清除。按ctrl-c将复制选择并清除它,允许刷新完成,应用程序继续运行。控制台窗口中的任何按键都应该清除选择,听起来只有ctrl-c适合你。

如果这不是问题所在,那么下一次你看到这将是打开一个本机调试器(例如Windbg)或java调试器并附加到你在控制台进程中运行的进程时,下一个最好的选择是什么正在等待。你正在调用的东西可能是触发虚假的getch / readline /等等。调试器应该使停顿源明显。如果您需要帮助解密堆栈,我可能会提供帮助。只需将其粘贴到此主题中即可。

Ben

© www.soinside.com 2019 - 2024. All rights reserved.