你好我有一个代码,当运行时打开cmd,然后打开框架。我希望一旦框架打开就关闭cmd,或者在用户关闭框架的同一时刻关闭cmd。这是我关闭框架时的代码。
frame = new JFrame("BrainSla");
frame.setLayout(new BorderLayout());
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
这是主要代码:
public static void main(String args[]) {
try {
System.out.println("BrainSla - By Jannes Braet, Steven Brain, Wout Slabbinck.");
nodeID = 10;
portOff = 0;
setHighMem();
isMembers = true;
signlink.storeid = 32;
signlink.startpriv(InetAddress.getLocalHost());
new Jframe(args);
//instance = new client();
//instance.createClientFrame(503, 765);
} catch(Exception e) {
e.printStackTrace();
}
}
有人可以告诉我我该怎么办?
答案 0 :(得分:0)
将frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
更改为
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
一旦关闭框架,这将退出应用程序
答案 1 :(得分:0)
如果是'cmd',则指的是'命令行'或CLI。选项:
javaw
代替java
从bat文件(或类似的操作系统)启动它
答案 2 :(得分:0)
如果从命令行运行,关闭命令行窗口将过早关闭应用程序。不知道在Windows上有什么方法可以做到这一点,但在Linux上你可以使用以下命令来执行此过程:
nohup java -jar myprogram.jar &
答案 3 :(得分:0)
如果从Java应用程序中启动进程(例如,通过调用Runtime.exec()或ProcessBuilder.start()),那么您有一个有效的Process引用,并且您可以调用destroy()方法在Process类中杀死该特定进程。
但请注意,如果您调用的进程创建新的子进程,则可能不会终止这些进程(请参阅http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4770092)。
另一方面,如果你想要杀死外部进程(你没有从你的Java应用程序中产生),那么你可以做的一件事是调用O / S实用程序,它们允许你这样做。例如,您可以在Unix / Linux下尝试运行Runtime.exec()on kill命令并检查返回值以确保应用程序被杀死(0表示成功,-1表示错误)。但这当然会使您的应用程序平台依赖。