0

我有一个类似的问题,比如JavaCompiler 没有正确编译文件。我也收到错误错误:找不到符号,但我使用了我自己的类应该实现的接口。
我的课看起来像:

   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:\Users\Plath\Axon\Neu\AxonIvyDesigner\AxonIvyDesigner6.7.1.55496_Windows_x64\plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar;

这不是项目路径。如何获取 web 项目的类路径?

4

1 回答 1

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 )) ; 

现在该类已正确编译。

于 2017-09-15T07:31:36.150 回答