2017-09-13 152 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)) ; 

现在类已编译正确。