반응형
진행하는 프로젝트에 따라 JDK를 유동적으로 전환하여 사용해야 하는 일이 빈번히 발생하여 Window에서 scripts를 사용하여 JDK를 유동적으로 전환하는 방법에 대해 이야기하려 한다.
1. 자바 환경 변수 설정
- 내 PC 우 클릭 > 속성 > 고급 시스템 설정 > 환경 변수 클릭
- 시스템 변수 새로 만들기 클릭
- 변수 이름 > JAVA_HOME 입력, 변수 값 > C:\Program Files (x86)\Eclipse Adoptium\jdk-8.0.332.9-hotspot 입력 > 확인 클릭
- 시스템 변수 path 더블 클릭 > 새로 만들기 클릭 > C:\Program Files (x86)\Eclipse Adoptium\scripts 입력 > 확인 클릭 > 확인 눌러 환경 변수 창 닫기
2. 변환하여 사용할 JDK 수만큼 .bat 파일 생성
메모장을 관리자 권한으로 실행하여 설치한 JDK 버전에 맞게 .bat 파일을 작성한다.
@echo off
set JAVA_HOME={JDK 경로}
set Path=%JAVA_HOME%\bin;%Path%
echo {JAVA버전} activated.
java -version
실무에서 Java7, Java8을 사용하고 개인적으로는 Java17을 사용하고 있어 3개의 .bat 파일을 생성했다.
Java7.bat
@echo off
set JAVA_HOME=C:\Program Files (x86)\Eclipse Adoptium\jdk1.7.0_80
set Path=%JAVA_HOME%\bin;%Path%
echo Java 7 activated.
java -version
Java8.bat
@echo off
set JAVA_HOME=C:\Program Files (x86)\Eclipse Adoptium\jdk-8.0.332.9-hotspot
set Path=%JAVA_HOME%\bin;%Path%
echo Java 8 activated.
java -version
Java17.bat
@echo off
set JAVA_HOME=C:\Program Files (x86)\Eclipse Adoptium\jdk-17.0.2
set Path=%JAVA_HOME%\bin;%Path%
echo Java 17 activated.
java -version
3. scripts 경로
작성한 각 .bat 파일을 필자가 지정한 scripts 경로로 옮겨놓는다.
C:\Program Files (x86)\Eclipse Adoptium\scripts
4. 명령어 실행
cmd를 실행한다.
java7
>java7
Java 7 activated.
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
java8
>java8
Java 8 activated.
openjdk version "1.8.0_332"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_332-b09)
OpenJDK Client VM (Temurin)(build 25.332-b09, mixed mode)
java17
>java17
Java 17 activated.
openjdk version "17.0.2" 2022-01-18
OpenJDK Runtime Environment (build 17.0.2+8-86)
OpenJDK 64-Bit Server VM (build 17.0.2+8-86, mixed mode, sharing)
cmd에 설정한 JAVA 버전 입력시 해당 버전에 맞게 JDK 버전이 변경되는 것을 확인할 수 있다.
Reference.
https://computer-science-student.tistory.com/467
반응형
'Java' 카테고리의 다른 글
[Java] Stack vs Deque (0) | 2022.07.25 |
---|---|
[Java] Mutable과 Immutable에 관하여 (0) | 2022.07.24 |
[Java] 자료구조 Stack에 관하여 (0) | 2022.07.23 |
[Java] 큰 숫자(정수) 다루기(BigInteger 클래스 사용) (0) | 2022.07.20 |
[Java] 자료구조 Map 에 관하여 (0) | 2022.07.19 |