0

你好,我有一个代码,运行时会打开 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();
    }
}

有人能告诉我我怎么能做这样的事情吗?

4

4 回答 4

0

如果通过“cmd”,您指的是“命令行”或 CLI。选项:

  1. javaw使用而不是从 bat 文件(或每个操作系统的类似文件)启动它java
    • 学习曲线低。
    • 不是很专业的样子。
  2. 使其成为可运行的 Jar(双击打开)
    • 中等学习曲线。
    • 中等专业外观。
  3. 使用JWS启动它
    • 高学习曲线。
    • 很专业的样子。
于 2012-05-30T14:57:57.637 回答
0

更改frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

这将在您关闭框架后立即退出应用程序

于 2012-05-30T14:56:03.680 回答
0

如果您从命令行运行,关闭命令行窗口将过早关闭您的应用程序。不确定在 Windows 上执行此操作的任何方法,但在 Linux 上,您可以在后台处理该进程并使用以下命令执行此操作:

nohup java -jar myprogram.jar & 
于 2012-05-30T15:38:01.580 回答
0

如果您在 Java 应用程序中从 with 启动进程(例如,通过调用 Runtime.exec() 或 ProcessBuilder.start()),那么您拥有对它的有效 Process 引用,您可以在 Process 类中调用 destroy() 方法杀死那个特定的进程。

但请注意,如果您调用的进程创建了新的子进程,这些子进程可能不会被终止(参见http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4770092)。

另一方面,如果您想杀死外部进程(不是从 Java 应用程序产生的),那么您可以做的一件事是调用允许您执行此操作的 O/S 实用程序。例如,您可以在 Unix / Linux 下尝试 Runtime.exec() on kill 命令并检查返回值以确保应用程序被杀死(0 表示成功,-1 表示错误)。但这当然会使您的应用程序平台依赖。

于 2016-03-21T10:06:24.747 回答