2017-09-13 2 views
0

비슷한 문제가 있습니다 (JavaCompiler not compiling files properly). 오류 : 심볼을 찾을 수 없지만 클래스가 구현해야하는 자체 인터페이스를 사용합니다. - 겉보기
JavaCompiler에서 기호를 찾을 수 없습니다.

[/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] 


클래스 및 인터페이스가 같은 패키지에 있습니다

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


나는이 컴파일 오류가 발생합니다 :
내 클래스처럼 보인다.

은 System.getProperty ("java.class.path를") 반환
C : \ 사용자 \ 플라스 \ 축삭 \ 노이 \ AxonIvyDesigner \ AxonIvyDesigner6.7.1.55496_Windows_x64 \ 플러그인/org.eclipse.equinox.launcher_1.3.0 .v20140415-2008.jar;

이것은 프로젝트 경로가 아닙니다. 웹 프로젝트의 클래스 경로를 얻으려면 어떻게해야합니까?

답변

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

이제 클래스가 올바르게 컴파일됩니다.

관련 문제