プログラムからコンパイラーを呼び出すために Java が提供するインターフェースを使用しています。
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList("MyClass.java"));
compiler.getTask(null, fileManager, null, null, null, compilationUnits).call();
fileManager.close();
すべてが正常に機能していますが、私ができるようにしたいのは、コンパイルしているプロジェクトに変数を渡し、結果を比較して、それらが期待どおりかどうかを確認することです。プログラムは正しく動作していません。クラスをテストするためにJUnitがどのように機能するかのようなものです。JavaCompiler インターフェースに、変数を渡してから読み取ることができるメソッドはありますか... System.in()
andのようなものSystem.out()
ですか?