複数のソース ファイル ( .java) をコンパイルし、対応するクラス ファイル ( .class) を実行時に生成する必要があるアプリケーションで作業している場合、これはアプリケーションの起動時に発生します。
現在、クラス生成に以下のコードを使用しています:
int errorCode = com.sun.tools.javac.Main.compile(new String[] {
"-cp", classPath,
"-d", pOutputPath,
srcFile.getAbsolutePath() },new PrintWriter(out));
すべての *.java ファイルは、1 つのメソッドを含む約 40 行のコードではありません。ただし、上記のコードのコンパイルにかかる時間は、ファイルごとに約2 秒です。
アプリケーションには 1000 個以上、場合によっては 2000 個以上の Java ファイルがあります。そのため、アプリケーションの起動時間が 2000 秒または 4000 秒を超えるのは望ましくありません。
に代わるものはありcom.sun.tools.javac.Main.compile
ますか?
または、ランタイム コンパイルとクラス ファイル生成のためのより良い方法またはより高速な方法はありますか?
シングルスレッド環境のため、マルチスレッドは使えません。