[java] 자바 버전 업그레이드 이슈

java8 업그레이드 이슈

  • jvm 런트임 환경은 java8 로 설정이 되어 있고, java 소스코드는 jdk7 로 컴파일해서 배포하는 스프링프레임워크 기반의 어플리케이션이 있었다. 굳이 jdk7을 쓸필요가 없을것 같아, class 파일 하나만 8버전으로 컴파일해서 배포했는데, 심각한 오류가 발생하였다.

ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file

  • 구글링을 해보았더니, 스프링프레임워크 4.3.x 버전부터 java8 을 지원하였다. 그런데 해당 어플리케이션은 3 버전을 사용하고 있었다. 스프링 버전을 올리는 것은 쉽지 않아, 일단 자바 버전 올리는 것은 보류하기로 하였다.ㅜ

  • 22년도 4분기에 나올 스프링 6 버전, 스프링부트3 은 최소 java17이 필요하다고 한다.

java 버전 정리

  • LTS(Long Term Support) : java8 / java11 / java17

  • java8 : java11 이나 java17 에 비해 EOL(End Of Life)가 긴 제품이 많다 보니, 제일 많이 쓰이고 있는 버전이다. 구글링 해보니, 오라클은 2030년이라고 한다. 스프링6 버전이 java 17 이상이 최소 요건이라고 하면, 앞으로 java8 다음으로 많이 사용하게 될 자바 버전은 java17이 될 것으로 보인다.

Reference

Leave a comment