Java控制台应用程序清理

时间:2012-03-28 21:04:46

标签: java console

我有一个通过控制台运行的游戏机器人。我不认为我会为它编写一个gui,但我希望有可能在没有CTRL + C的情况下关闭程序,因为这只会中断我的程序而不是正确清理代码并确保没有泄漏

我应该使用som类型的键绑定还是我必须使用GUI? 或者我怎么能这样做?

2 个答案:

答案 0 :(得分:5)

我认为这是shutdown hook的用途。

Runtime.getRuntime().addShutdownHook( new Thread() { 
    @Override 
    public void run() { 
        System.out.println("Application shutdown"); 
    }
});

答案 1 :(得分:1)

大卫的回答很好。它可能对你有用。

我通常不愿故意中止流程,然后检测到它正在下降以避免悬空操作。所以我可能会更喜欢:

您是在处理控制台输入时输入的吗?如果是这样,您可以使用一个控制台命令来告诉应用程序关闭,并在您处理控制台输入的过程中检查这一点。或者,如果您的意思是应用程序只是在没有用户输入的情况下运行,您可以定期检查控制台缓冲区是否为空(Console.reader()。ready()),如果不是,请阅读控制台并查看它是否已退出命令。