【问题标题】:JavaCompiler cannot find symbolJavaCompiler 找不到符号
【发布时间】:2017-09-13 13:13:24
【问题描述】:

我有类似JavaCompiler not compiling files properly 的问题。我也收到错误 error: cannot find symbol 但我使用了我自己的类应该实现的接口。
我的班级看起来像:

   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 项目的类路径?

【问题讨论】:

    标签: javacompiler


    【解决方案1】:

    我找到了一种创建与运行时相同的正确类路径的方法。

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

    现在该类已正确编译。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-11
      • 2013-09-12
      • 2013-06-06
      • 2017-10-01
      • 2016-02-06
      • 2015-05-10
      • 2014-01-05
      • 2022-01-17
      相关资源
      最近更新 更多