我读到 Java 6 有一个编译器 api,它允许您从其他 java 代码编译 java 文件。但是,每当我尝试导入任何此类类(例如 javax.tools.JavaCompilerTool)时,我都会得到 p>
unable to resolve class javax.tools.JavaCompilerTool
我搜索了jdk1.6.0_26安装目录下的所有jar文件,没有发现javax.tools包中的任何jar文件中引用了JavaCompilerTool。
我的理解是这个功能是在 1.6 JDK 中的。我正在使用\bin 目录中的 java.exe 运行我的应用程序,而不是\jre\bin 目录,但无论如何都不起作用。
我错过了什么?怎么找不到类。
最佳答案
您需要使用javax.tools.JavaCompiler类(class)。看看javadocs供使用。
示例:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromFiles(Arrays.asList(new File("HelloWorld.java")));
compiler.getTask(null, fileManager, null, null, null, compilationUnits).call();
fileManager.close();
关于java - Java 编译器 API 不起作用我一直无法解析类 javax.tools.JavaCompilerTool 和其他类似的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6930255/