質問: javaソースコードをコンパイルするjavaプログラム タイトルの通りですが、javaソースコードをコンパイルし、実行するjavaプログラムを作りたいのですが、なにか有効な方法はありますでしょうか。 runtime.getruntime().exec( "javac test.java" ); のようにすると、エラーになります。 なにか良い方法をご存知でしたら、よろしくお願いします。
回答: javaのソースコードをコンパイルするのでしたら、runtime.getruntime().exec()を使ってもいいですけど、com.sun.tools.javacを使っては? これは、jdkのjavacコマンドが実行されるときに内部から呼び出されるコンパイルクラスです。 // 以下をimport // import com.sun.tools.javac.*; main main = new main(); string[] param = {"./sample.java"}; main.compile(param); 例えばこんな具合にしてcom.sun.tools.javacのmainインスタンスを作成し、ファイルパスの配列を引数にしてcompileを呼び出してやります。わざわざexecで外部のタスクとして起動するより、こちらのほうがスマートかと。