1

好吧,我有一个关闭挂钩,可以确保我在关闭时很好地关闭连接。我现在需要做的是打开另一个程序(终端模拟器),然后关闭我的程序,同时让终端模拟器保持打开状态。我能够打开模拟器,但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"));
4

1 回答 1

0

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

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

将此保存为批处理文件,它应该从命令行完成所有操作。

于 2014-07-28T17:27:48.107 回答