내 회사컴에는 JDK 1.7 / 1.8 / 17 버전이 설치되어 있다.
JDK 1.8 버전의 프로젝트를 개발해야 하는데, 여러가지 JDK버전이 설치되어 있다보니
자바에서 환경변수 설정을 해줘도 라이브러리와 컴파일러 버전이 변경이 안되는 것이었다.
이클립스 내에서 따로 설정하면 돼서 해당 방법을 잊지 않기 위해 기록하는 목적으로 포스팅해보겠다.
1. JRE 라이브러리 변경
1-1. 패키지 우측 마우스 클릭 - Properties
자바 버전이 맞지 않아서 생긴 에러인데 특정 패키지의 특정 클래스만 에러가 생겼다.
에러 메시지를 캡쳐하지 않아서 바로 jre 라이브러리 변경하는 것부터 포스팅하겠다.
1-2. Properties for (패키지 이름) - Java Build Path - Libraries
이미 jre 버전을 원래 17버전에서 1.8 버전으로 바꾸고 캡쳐했어서 1.8로 미리 되어있는점 양해 바란다.
1-3. 기존 JRE System Library 클릭 - Remove - Add Library
기존에 빌드 되어 있는, 변경하고 싶은 jre 라이브러리를 클릭해서 remove 버튼을 눌러 제거하고
Add library 버튼을 클릭해서 변경하고 싶은 jre library를 찾아서 빌드 시키면 된다.
(앞서 이미 빌드 되어 있는 jre 라이브러리 버전이 내가 변경해야 할 버전이 맞는지 확인해야 함)
1-4. Add Library - JRE System Library - Next
1-5. Alternate JRE - Installed JREs
1-6. Add
1-7. Standard VM - Next
1-8. JRE Definition - Directory
1-9. 폴더 내 변경하고 싶은 JRE 파일 경로 접속 후 선택
[내 jre 1.8 파일 경로]
C:\Program Files\Java\jre-1.8
1-10. 변경하고 싶은 JRE 버전 파일 선택 여부 확인 후 Finish
1-11. Alternate JRE - 'jre-1.8'(변경하고자 하는 jre 버전) 선택 - Finish
1-12. 변경 된 JRE 버전 확인 후 Apply and Close
완료하면 JRE 버전이 변경되었음을 확인할 수 있다.
2. Java 컴파일러 버전 변경
2-0. 에러 메시지 확인
Exception in thread "main" java.lang.UnsupportedClassVersionError: engine/TruMain : Unsupported major.minor version 61.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
쉽게 말하자면 이 에러는 자바 컴파일러 버전과 자바 버전이 맞지 않아서 생기는 에러다.
해당 프로젝트는 JDK 1.7 - 32bit 버전을 사용하고 있는데 역시나 자바 컴파일러 버전이 17로 되어 있었다.
2-1. 프로젝트 우측 마우스로 클릭 - Properties
프로젝트를 우측 마우스로 클릭하면 다음과 같은 선택창이 나타나는데,
맨 아래인 Properties를 누르면 자바 컴파일러를 확인할 수 있다.
2-2. Java Build Path - Libraries - JRE 버전 확인
java build path에는 jdk 버전이 1.7 (32-bit)로 되어 있어 문제는 없다.
(앞서 jre 1.8 버전 설치한 것과 다른 프로젝트로, jre 1.7을 사용해야 하는 프로젝트이다.)
2-3. Properties for (프로젝트 이름) - Java Compiler - JDK Compliance 확인
jre는 1.7인데 자바 컴파일러 버전은 17로 되어 있으니 내가 실행하고자 하는 자바 파일에서 에러가 났던 것이다.
2-4. JDK Compliance 버전 변경 - Apply and Close
자바 컴파일러 버전을 기존 17에서 1.7로 바꿔주자
2-5. Compiler Settings Changed 경고창 - Yes
컴파일러 버전 변경이 완료되었다.
3. Main 프로그램 실행 확인
JRE버전과 Java 컴파일러 버전을 알맞게 변경한 후 프로그램을 다시 실행해보자.
Main 프로그램이 잘 실행되었다.
4. [ GGang's Tip ] Main 프로그램 이름 변경
깡패토끼팁......... 깡팁. (갱(Gang)팁 아님.)
Run History를 보면 실행 파일 이름이 뜬다.
내가 실행해야 할 파일이 저 Main 하나라면 좋겠지만,
내가 맡게 될 다른 프로젝트의 실행 파일 이름도 Main이라면 헷갈리기 좋을 것이다.
그래서 저 Main의 이름을 알기 쉽게 바꿔주자.
4-1. Run - Run History - 변경할 프로그램 확인
이미 실행 완료한 Main 프로그램이 있다는 전제이다.
4-2. Run - Run Configurations
4-3. Name 변경
첫번째 빨간 박스 안 Name이 실질적인 실행 파일의 이름이고,
밑의 두번째 빨간 박스 안에 있는 내용은 Project의 이름이다.
실행 파일의 이름을 '프로젝트명_main'으로 변경해보겠다.
그럼 겹칠 일이 없어서 구분하기 쉬울 것이다.
'[Language] > Java | Spring | JSP' 카테고리의 다른 글
Eclipse에 STS4 설치하기 (0) | 2024.07.18 |
---|---|
[IntelliJ/Java] IntelliJ JVM 버전 변경 (0) | 2024.07.09 |
java.net.ConnectException: Connection timed out: connect (0) | 2024.06.27 |
[Java Swing] 0. Swing으로 버튼 만들기 (JButton Component) (0) | 2024.06.18 |
[Java Swing] Eclipse에서 Java Swing 설치하기 (1) | 2024.06.18 |