我有一个通过控制台运行的游戏机器人。我不认为我会为它编写一个gui,但我希望有可能在没有CTRL + C的情况下关闭程序,因为这只会中断我的程序而不是正确清理代码并确保没有泄漏
我应该使用som类型的键绑定还是我必须使用GUI? 或者我怎么能这样做?
答案 0 :(得分:5)
我认为这是shutdown hook的用途。
Runtime.getRuntime().addShutdownHook( new Thread() {
@Override
public void run() {
System.out.println("Application shutdown");
}
});
答案 1 :(得分:1)
大卫的回答很好。它可能对你有用。
我通常不愿故意中止流程,然后检测到它正在下降以避免悬空操作。所以我可能会更喜欢:
您是在处理控制台输入时输入的吗?如果是这样,您可以使用一个控制台命令来告诉应用程序关闭,并在您处理控制台输入的过程中检查这一点。或者,如果您的意思是应用程序只是在没有用户输入的情况下运行,您可以定期检查控制台缓冲区是否为空(Console.reader()。ready()),如果不是,请阅读控制台并查看它是否已退出命令。