2010-02-11 1 views
1

을 생산, 나는 JDK 1.5.0_22을 사용하고있어 내가 필요한 JDK/bin 디렉토리의 JDK의 실행 파일 (javac, native2ascii, javadoc 등) 중 하나를 실행할 때 tools.jar 잘 동작 (자바, 키 도구 등)을 필요로하지 않는 bin 디렉토리에javac의 (그리고 다른 JDK 실행 파일) Solaris 10에서 NoClassDefFoundError를

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/Main

JRE 실행 파일 : 실행 tools.jar, 나는 (인수 및없이 실행)이 오류가 발생합니다.

예, tools.jar은 JDK/lib 디렉토리에 있으며 권한은 정상이며 손상되지 않았습니다. tools.jar의 내용을보고 추출 할 수 있습니다.

JAVA_HOME 설정을 시도하고 JDK/bin 디렉토리를 PATH에 추가하여 환경 변수를 설정/해제해도 아무런 차이가 없습니다. 나는 여전히 같은 오류가 발생합니다.

이 (아래 cmd를 JDK/bin 디렉토리에서 실행 됨) NoClassDefFoundError을 없애 및 실행 파일 JDK/빈 실행을 허용하지 내가 찾은 유일한 것입니다 : 그래서

./native2ascii -J-Xbootclasspath/a:../lib/tools.jar 

경우 javac, javadoc, native2ascii과 같은 JDK/bin 실행 파일에 -J-Xbootclasspath/a:../lib/tools.jar을 추가하면 실행됩니다. 그렇지 않으면, 그들은하지 않습니다.

수정 방법에 대한 아이디어가 있으십니까? JDK/bin 실행 파일은 모두 내가 가지고있는 다른 Solaris 10 시스템에서 정상적으로 실행되며 그 중 아무 것도 JAVA_HOME 바 세트 또는 PATH의 JDK/bin을 가지고 있지 않습니다.

답변

0

이 NoClassDefFoundError는 Java Virtual Machine 또는 ClassLoader 인스턴스가 (정상적인 메소드 호출의 일부로 또는 새 표현식을 사용하여 새 인스턴스를 작성하는 일부로) 클래스 정의에서로드하려고 시도하고 정의가없는 경우 클래스의

현재 실행중인 클래스가 컴파일되었을 때 검색된 클래스 정의가 존재하지만 정의를 더 이상 찾을 수 없습니다.

JAVA_HOME을 BIN 폴더로 설정하면 안됩니다. JDK_HOME = C : \ Program Files \ Java \ jdk1.6.0_18

+1

JAVA_HOME을 bin 폴더로 설정하지 않았습니다. 내가 가지고있는 다른 Solaris 시스템에는 JAVA_HOME이 전혀 설정되어 있지 않으며 javac, native2ascii 등이 모두 동작합니다. – JavaHoss

관련 문제