开发者

The Java Compiler API does not work I keep getting unable to resolve class javax.tools.JavaCompilerTool and other similar ones

开发者 https://www.devze.com 2023-03-25 05:22 出处:网络
I have read that Java 6 has a compiler api which allows you to compile java files from other java code.However whenever I try to import any such class (eg javax.tools.JavaCompilerTool), I get a

I have read that Java 6 has a compiler api which allows you to compile java files from other java code. However whenever I try to import any such class (eg javax.tools.JavaCompilerTool), I get a

unable to resolve class javax.tools.JavaCompilerTool

I searched in all the jar files in the jdk1.6.0_26 installation directory and found no reference to JavaCompilerTool in any jar file in the package javax.tools.

My understanding is that this function开发者_JS百科ality is in the 1.6 JDK. I am running my application with the java.exe from the \bin directory and not the \jre\bin directory but regardless neither work.

What am I missing? How can the class not be found.


You need to use the javax.tools.JavaCompiler class. Take a look at the javadocs for usage.

Example:

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();


I see javax.tools.JavaCompiler in my JDK 6 rt.jar. Perhaps you have the incorrect class name.

0

精彩评论

暂无评论...
验证码 换一张
取 消