다른 게시물에서 Java의 주요 버전 번호 목록을 보았습니다.
- Java 1.2는 메이저 버전 46을 사용합니다
- Java 1.3은 메이저 버전 47을 사용합니다
- Java 1.4는 메이저 버전 48을 사용합니다
- Java 5는 메이저 버전 49를 사용합니다.
- Java 6은 메이저 버전 50을 사용합니다.
- Java 7은 주요 버전 51을 사용합니다.
- Java 8은 메이저 버전 52를 사용합니다.
- Java 9는 메이저 버전 53을 사용합니다.
- Java 10은 메이저 버전 54를 사용합니다.
- Java 11은 메이저 버전 55를 사용합니다.
- Java 12는 메이저 버전 56을 사용합니다.
- Java 13은 메이저 버전 57을 사용합니다.
- Java 14는 메이저 버전 58을 사용합니다.
참고 문헌 :
https://blogs.oracle.com/darcy/entry/source_target_class_file_version
https://en.wikipedia.org/wiki/Java_class_file#General_layout
답변
이것들은 클래스 버전에서 나온 것입니다. java 5 런타임에서 java 6 용으로 컴파일 된 것을로드하려고하면 호환되지 않는 클래스 버전에서 50을 얻었을 것으로 예상됩니다. 예상치가 49입니다.
참조 여기 바이트에 대한 추가 정보를 원하시면 7 오프셋.
답변
Wikipedia 페이지에서 클래스 파일 형식을 설명하는 Java 클래스 파일 버전 목록을 찾았습니다.
http://en.wikipedia.org/wiki/Java_class_file#General_layout
바이트 오프셋 6 및 7에서 버전이 해당하는 Java VM과 함께 나열됩니다.
답변
“클래스 파일의 오류 컴파일러”에 대해 문제가있는 경우 Eclipse를 통해 프로젝트의 JRE를 해당하는 것으로 변경하여이 문제를 해결할 수 있습니다.
- 빌드 경로
- 빌드 경로 구성
- 친구가 마지막에 표시하는 테이블의 대응 자에게 라이브러리를 변경해주세요.
- “jar 파일”을 작성하고 컴파일하고 실행하십시오.
나는 그것을했고 효과가 있었다.
답변
에 클래스 파일이 있으면 다음 build/com/foo/Hello.class
명령을 사용하여 컴파일 된 Java 버전을 확인할 수 있습니다.
javap -v build/com/foo/Hello.class | grep "major"
사용법 예 :
$ javap -v build/classes/java/main/org/aguibert/liberty/Book.class | grep major
major version: 57
OP의 표에 따르면 메이저 버전 57은 클래스 파일이 JDK 13 바이트 코드 레벨로 컴파일되었음을 의미합니다.