javax JavaCompiler 类路径问题

标签 java classpath

我尝试使用 Javax.tools.javacompiler 编译一些代码,但是每次编译器都不认为该类使用的接口(interface)不是类路径的一部分。

这些接口(interface)是调用编译器的应用程序的一部分,我尝试将 .jar 文件添加到 java 编译器的类路径中,如下所示:

optionList.add(System.getProperty("java.class.path") + ";" + f.getAbsolutePath());

JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, optionList, null,
                compilationUnits);

我收到的错误如下:

plugins\Ping.java:6: error: cannot find symbol
public class Ping extends BaseRoute {
                          ^

以及由于找不到父类(super class)而导致的更多问题。

我已确保检查文件“f”是否在 Debug模式下正确定义,因此这不是问题。我还尝试通过 io.aecta.restdb.* (我的包)将其添加到类路径中,但这也不起作用。

预先感谢您的帮助。

最佳答案

如果您从自己的 jar 文件进行编译,则 java.class.path 应该已经包含您的 jar 文件,因此无需通过 f.getAbsolutePath() 再次添加它,这不会造成伤害,但也没有必要。该代码对我来说看起来绝对没问题。您确定在您正在编译的代码中导入了这个“BaseRoute”类吗?

关于javax JavaCompiler 类路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34247712/

相关文章:

java - 根据我的代码,我应该在哪里放置 ListView 的 onItemClick 以及如何将对象从 getItemsOnPosition() 解析为数组?

在使用 Couchbase 缓存的 websphere 中部署 War 时出现 java.lang.NoClassDefFoundError

java - 将当前项目的 target/classes/* 包含到 Maven 插件执行类路径中,以便使用 ASM 进行字节码检测

java - 尝试创建批处理文件来运行 Java 程序时无法找到或加载主类

java - 从服务线程更新 JavaFX GUI

java - JSP 使用过滤器写入响应

java - 不可能的 Java 方法调用行为

Java 环境变量设置正确,但 java 找不到 jars

java - Axis webservice 中的源 jar 从哪里加载?

java - android sqlite没有这样的表错误(代码1)