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

これを行う最も簡単な方法は、プログラムを実行してシャットダウンし、ターミナル エミュレータを起動するシェル スクリプトまたはバッチ ファイルを作成することです。

#!/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 に答える