2017-09-13 196 views
0

我有類似的問題,如JavaCompiler not compiling files properly。我也得到了錯誤錯誤:找不到符號但我使用我自己的接口,該類應實現。
我班的樣子:
Java編譯器找不到符號

String className = "refac.MyClass"; 
    String javaCode = "package refac;\n" + 
       "import refac.IBewertungsAlgorithmus;\n" + 
        "public class MyClass implements IBewertungsAlgorithmus{\n" + 
         " public Boolean Bewertung (int checkliste){\n" + 
         "  System.out.println(\"Hello World\");\n" + 
         "  return false; }\n" + 
        "}\n"; 


我得到這個編譯錯誤:

[/refac/MyClass.java:2: error: cannot find symbol 
import refac.IBewertungsAlgorithmus; 
      ^
    symbol: class IBewertungsAlgorithmus 
    location: package refac, /refac/MyClass.java:3: error: cannot find symbol 
public class MyClass implements IBewertungsAlgorithmus{ 
           ^
    symbol: class IBewertungsAlgorithmus] 


的類和接口都在同一個包 - 看似。

System.getProperty( 「java.class.path」)返回
C:\用戶\普拉斯\軸突\ NEU \ AxonIvyDesigner \ AxonIvyDesigner6.7.1.55496_Windows_x64 \插件/ org.eclipse.equinox.launcher_1.3.0 .v20140415-2008.jar;

這不是項目路徑。我如何獲得Web項目的類路徑?

回答

0

我找到了一種方法來創建正確的類路徑,使其與運行時相同。

 ClassLoader dummyc=getClass().getClassLoader(); 
    URLClassLoader urlClassLoader=(URLClassLoader)dummyc; 
    URL[] urls=urlClassLoader.getURLs(); 
    String classpath = ""; 
    for (URL i : urls) { 
     classpath += ";" + i.getPath().substring(1); 
    } 
    optionList.addAll(Arrays.asList("-classpath",System.getProperty("java.class.path") 
+ classpath)) ; 

現在類已編譯正確。