我有一个可执行的jar文件。一旦启动,停止它的唯一方法是转到任务管理器并结束javaw进程。是否有更简洁的方法来阻止它,比如使用新手用户可以使用的UI?
答案 0 :(得分:1)
由于您控制了代码,因此您希望在GUI中具有允许使用System.exit
退出的内容。所以,如果你使用Swing,你可以做类似的事情:
JButton b = new JButton("Exit");
b.setActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
答案 1 :(得分:1)
另一个有用的技术是监听windowClosing,当用户单击Windows上的X按钮(以及其他系统上的等效按钮)时会发生这种情况:
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
我通常把它放在为应用程序扩展Frame的类的构造函数中。
如果您使用的是JFrame,还需要添加以下行:
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
答案 2 :(得分:0)
如果您的应用程序没有GUI(例如,如果它是服务),那么您可以使用本地网络访问来模拟操作系统通常用于启动和停止服务的标准IPC(进程间通信)机制。
您可以在Apache的Commons Daemon项目中找到的非常流行的实现:http://commons.apache.org/daemon/
答案 3 :(得分:0)
当所有非守护程序线程结束时,您的应用程序将结束。执行此操作的方法是创建所有线程但只有一个守护进程,并让最后一个线程等待信号停止。
答案 4 :(得分:0)
我终于找到了解决问题的方法。由于我没有可以关闭的GUI,也没有控制台。最好的方法是在java.awt包中使用SystemTray API。只需右键单击图标并退出。