我正在使用 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()
?