2010-05-25 6 views
5

저는 정말 Java 프로그래머가 아니므로이 질문을 게시하고 있습니다. 이클립스 프로젝트의 메인 클래스에서 java.lang.UnsupportedClassVersionError 예외가 던지고있다. 이 클래스에있는 가져 오기를 주석 처리하면 컴파일되고 올바르게 실행됩니다. 수입품을 다시 넣으면 작동하지 않습니다. 이것은 내가 가져 오는 라이브러리가 내가 가지고있는 것보다 더 새로운 또는 이전 버전의 자바로 컴파일되었다는 것을 의미합니까? 내가 시스템에서 java -version을 할 때 나는 1.5_07을 얻는다.Eclipse에서 java.lang.UnsupportedClassVersionError

나는 이것이 실제로 지난 주에 일하고 있었다고 맹세 할 수 있었다. 그러나 아마 일식에서의 약간의 설정은 쥐었다. JRE 및 컴파일러 버전을 확인하기 위해 Java 빌드 경로를 조사해야합니까?

답변

14

Eclipse에서 컴파일러 버전은 JRE 버전과 독립적으로 설정됩니다. 즉, 컴파일러를 Java 버전 1.6으로 설정하고 JRE 1.5를 사용할 수 있습니다. 이 경우 컴파일 된 클래스를 실행할 수 없습니다.

Window/Preferences/Java/Compiler의 기본 컴파일러 준수 수준 또는 프로젝트 별 컴파일러 준수 수준에 대한 프로젝트 속성을 확인할 수 있습니다. 이 레벨을 프로젝트에서 사용 된 JRE (Project/Properties/Java Build Path -> Libraries/JRE System Library)와 프로그램 시작 구성 (Run/Run Configurations... 메뉴를 통해)과 비교하십시오.

+0

이것은 문제는 아닙니다. 감사. 나는 많이 일식을 사용하지 않았으며 그것이 그렇게 독립적으로 설정 될 수 있다는 것을 깨닫지 못했다. – Derek

0

Eclipse는 JDK 컴파일러를 사용하지 않지만 모든 JRE에 대한 바이트 코드를 생성 할 수있는 자체 컴파일러를 가지고 있습니다. 프로젝트의 컴파일러 설정이 Eclipse에 등록한 JRE와 같거나 낮은 버전으로 설정되어 있는지 확인해야합니다. Window/Preferences/Java/Installed JRE를 확인하고 실행 구성에서 JRE가 사용되는지 확인하십시오 (해당 Run 메뉴 참조).

0

가져온 클래스가 외부 라이브러리 (즉, 프로젝트 내의 소스에서 컴파일되지 않은 클래스)에서 가져온 클래스 인 경우 프로젝트에 사용 된 JRE가이 라이브러리에 새롭다는 것을 검증해야합니다.

2

UnsupportedClassVersionError은 사용하려는 Java Runtime Environment가 실행하려는 클래스 파일의 버전을 인식하지 못함을 의미합니다. 이 오류의 가장 일반적인 원인은 이전 Java 버전에서 최신 Java 버전 용으로 컴파일 된 클래스 파일을 사용하려는 것입니다. 예를 들어 Java 5 런타임 환경에서 Java 6 용으로 컴파일 된 클래스를 사용하려고하는 경우입니다.

Eugene이 설명했듯이 Eclipse에는 자체 컴파일러가 내장되어 있으므로 JDK의 컴파일러를 사용하지 않습니다. 따라서 Java 5에서 실행중인 경우에도 Java 6 클래스 파일로 끝날 수 있습니다.

Christian은 Eclipse에서 Java 클래스 파일 버전을 설정하는 방법을 설명합니다.

0

Eclipse에서 Maven을 사용하는 경우 Maven 플러그인을 사용하여 프로젝트를 업데이트 한 다음 Maven "clean"을 수행 할 수 있습니다. 필자의 경우이 오류에 대한 예상치 못한 불확실성이 해결되었습니다.

0

나는 이것이 지금 OLD 스레드라는 것을 알고 있지만, 나는 이런 종류의 오류가있는 최근의 모험을 경험했다.

Ant 빌드 파일을 사용하여 Eclipse 내에서 프로젝트를 컴파일하려고 할 때.

  • 이클립스 케플러 (자바 1.7)
  • 개미 1.7
  • 프로젝트 = 자바 1.5

모든 내부 경로와 컴파일러 설정은 자바 1.5를보고 개정 된 프로젝트는 이클립스에서 잘 구축 .

개미를 사용하여 컴파일을 시도 할 때 나는 이클립스에서 java.lang.UnsupportedClassVersionError을 얻었고 여기를 포함하여이 페이지를 찾았습니다.

내 해결 방법이 있었다 :

Windows > Preferences > Ant > Runtime > Global Entries 

글로벌 항목 내가 (오른쪽 메뉴에서) 새로운 외부 항아리를 추가 Java 1.7 tools.jar

가리키는되었으며 Java 1.5 tools.jar

나는 그것을 지적 원래 항목 (1.7 tools.jar)을 제거하고 개미 빌드가 작동하기 시작했습니다.

관련 문제