javaからjavacコマンドのような外部コマンドを実行するには、ProcessBuilderクラスを使用します。
今回linux環境で自分のホームフォルダ直下にHello.javaファイルが格納されており、
それをjavaからコンパイル・実行し、結果を出力してみます。
※Hello.javaは"hello"を出力する単純なソースです。
import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class CommandExec { public static void main(String[] args) { ProcessBuilder pb1 = new ProcessBuilder("javac", "Hello.java"); pb1.directory(new File(System.getProperty("user.home"))); try { Process process = pb1.start(); int exit = process.waitFor(); if (exit != 0) { System.out.println("javacコマンド失敗"); return; } pb1.command("java", "Hello"); process = pb1.start(); exit = process.waitFor(); if (exit != 0) { System.out.println("javaコマンド失敗"); return; } InputStream inputStream = process.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader( inputStream); BufferedReader bufferedReader = new BufferedReader( inputStreamReader); String line = bufferedReader.readLine(); while (line != null) { System.out.println(line); line = bufferedReader.readLine(); } } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }