Java打开外部程序然后关闭java程序

时间:2014-07-28 17:16:09

标签: java processbuilder external-process openprocess

好吧,我有一个关闭钩子,确保每当我关闭时我都能很好地关闭我的连接。我现在需要做的是打开另一个程序(终端仿真器)然后关闭我的,同时让终端仿真器保持打开状态。我能够打开模拟器但是java程序在模拟器关闭之前不会关闭。我怎样才能运行并关闭我的程序?

    Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
        @Override
        public void run() {
            if (connection != null) {
                try {
                    connection.close();
                    System.out.println("Connection Closed");
                    try {
                        ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "C:\\MVbase\\mvterm.lnk");
                        Process p = pb.start();
                        System.exit(0);
                    } catch (IOException e) {
                        System.out.println(e);
                    }
                } catch (MVException e) {
                    System.out.println(e.getMessage());
                }
            }
        }
    }, "Shutdown-thread"));

1 个答案:

答案 0 :(得分:0)

最简单的方法是制作运行程序的shell脚本或批处理文件,然后将其关闭并启动终端模拟器。

#!/bin/sh
cd C:/location/of/program 
javac program.java
java program
kill program
cd C:/location/of/terminalemulator
run terminalemulator

将其另存为批处理文件,它应该从命令行执行所有操作。