2015-12-13 107 views
1

我想使用Javax.tools.javacompiler編譯一些代碼,但是每次編譯器都不認爲類使用的接口不是類路徑的一部分。javax 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.*(我的軟件包)將它添加到類路徑中,但這也不起作用。

在此先感謝您的幫助。

+0

定義「嘗試通過'io.asecta.restdb。*'(我的包)將它添加到類路徑」。 – EJP

回答

0

如果你從你自己的jar文件編譯,java.class.path應該已經包含你的jar文件,所以不需要通過f.getAbsolutePath()再次添加它,它不會傷害,但不是'必要的。代碼看起來絕對很好。你確定在你編譯的代碼中你導入了這個「BaseRoute」類嗎?