我正在尝试使用Javax.tools.javacompiler编译一些代码,但是每次编译器都不认为该类使用的接口不是类路径的一部分。
接口是调用编译器的应用程序的一部分,我尝试将.jar文件添加到javacompiler的类路径中,如下所示:
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 {
^以及由于找不到超类而导致的更多问题。
我已经确保在调试模式下正确定义了文件'f‘,所以这不是问题所在。我也尝试过通过io.asecta.restdb.* (我的包)将其添加到类路径中,但同样不起作用。
提前感谢你的帮助。
发布于 2015-12-14 03:57:24
如果您正在从您自己的jar文件进行编译,那么java.class.path应该已经包含您的jar文件,所以不需要通过f.getAbsolutePath()再次添加它,这没有什么坏处,但也不是必须的。代码在我看来绝对没问题。您确定在您正在编译的代码中导入了这个"BaseRoute“类吗?
https://stackoverflow.com/questions/34247712
复制相似问题