Java 编译器 API 不起作用我一直无法解析类 javax.tools.JavaCompilerTool 和其他类似的类

发布于 2024-11-28 03:11:31 字数 409 浏览 2 评论 0原文

我读到 Java 6 有一个编译器 api,它允许您从其他 java 代码编译 java 文件。然而,每当我尝试导入任何此类(例如 javax.tools.JavaCompilerTool)时,我都会得到一个“

unable to resolve class javax.tools.JavaCompilerTool

我在 jdk1.6.0_26 安装目录中的所有 jar 文件中进行搜索,并且在 javax 包中的任何 jar 文件中都没有找到对 JavaCompilerTool 的引用” 。工具。

我的理解是这个功能是在 1.6 JDK 中的。我正在使用 \bin 目录中的 java.exe 运行我的应用程序,而不是 \jre\bin 目录,但无论如何都不起作用。

我缺少什么?怎么找不到班级呢。

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 functionality 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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

安静 2024-12-05 03:11:31

您需要使用 javax.tools.JavaCompiler 类。查看 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();

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();
执妄 2024-12-05 03:11:31

我在 JDK 6 rt.jar 中看到 javax.tools.JavaCompiler。也许您的类名不正确。

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文