コマンド プロンプトから別の Java ファイルをコンパイルするプログラムを作成しようとしています。しかし、私はそれに問題があります。この時点で、Mocha.java をコンパイルする最初の部分が正常に実行されています。ただし、そのファイルも実行して、出力内容を表示したいと考えています。何も表示されません。助言がありますか?
pb = new ProcessBuilder("javac","Mocha.java");
try {
Process shell = pb.start();
OutputStream shellOut = shell.getOutputStream();
shellOut.write("java Mocha".getBytes());
shellOut.close();
InputStream shellIn = shell.getInputStream();
String response = IOUtils.toString(shellIn, "UTF-8");
System.out.println(response);
shellIn.close();
shell.destroy();
} catch (IOException ex) {
System.out.println("failed");
}
ノート:
また、最初はすべての引数を次のようにしようとしました:
pb = new ProcessBuilder("javac","Mocha.java","&&","java","Mocha");
しかし、これは機能しないだけでなく、上記のように Mocha.java をコンパイルすることさえできませんでした。
ありがとう!
編集:
そこで、これを変更して2つのプロセスを作成しました。今みんな素晴らしい作品!興味のある方へ:
pb = new ProcessBuilder("javac","Mocha.java");
try {
Process shell = pb.start();
int error = shell.waitFor();
shell.destroy();
if (error == 0)
{
pb = new ProcessBuilder("java","Mocha");
shell = pb.start();
InputStream shellIn = shell.getInputStream();
String response = IOUtils.toString(shellIn, "UTF-8");
System.out.println(response);
shellIn.close();
shell.destroy();
}
} catch (IOException ex) {
System.out.println("failed");
} catch (InterruptedException ex) {
}