2

Java で main メソッドを使用して別のクラスを (コンパイルして) ​​実行し、その出力を読み取り、後でその入力に書き込む必要がありますが、最初に読み取ることに集中します。アプリケーションが標準出力に「123」を書き込むかどうかをテストする必要があるとしましょう。これを想像する方法は次のとおりです。

public class TestMe {
    public static void main(String[] args) {
        System.out.println("123");
    }
}

...

public class Tester {

    public static void main(String[] args) {
        Runtime runtime = Runtime.getRuntime();
        try {
            Process exec = runtime.exec("java works.TestMe");
            BufferedReader br = new BufferedReader(new InputStreamReader(exec.getInputStream()));
            if (br.readLine().equals("123")) {
                System.out.println("Your program is working fine");
            } else {
                System.out.println("Yout program is bad and you should feel bad");
            }
        } catch (IOException ex) {

        }

    }
}

ランタイム クラスで作成されたプロセス ith exec() メソッドをロードしましたが、リーダーはデータを読み取らず、代わりに (メソッド readLine() で) null ポインター例外をスローします。私は両方のクラスを異なるパッケージに持っており、とにかく問題がある場合は、netbeans を使用しています。任意の助けが必要です。

4

0 に答える 0