[JAVA] 자바 버전 여러 개 활용하기 (프로그램 실행 시 자바 버전 변경)
자바 버전별로 호환되는 프로그램이 다른 경우가 있다.
자바 버전이 다르면 잘 되던게 안되는 현상이 생긴다. 때문에 자바 버전을 여러 개 사용할 수 있는 방법이 있다.
스크립트로 환경 변수를 바꿔주는 방법이다.
JDK에서는 두개의 환경변수를 사용한다. JAVA_HOME과 PATH이다.
JAVA_HOME : JDK의 위치를 나타내는 환경변수
PATH : 운영체제가 프로세스 실행을 위해 참조하는 변수이다.
운영체제는 JDK를 실행시키기위해 JAVA_HOME과 PATH 환경변수를 사용하여 JDK에 접근한다.
Batch File 을 사용하여 환경변수를 변경해주고자 한다.
@echo off
set JAVA_HOME=(JDK파일경로)
set Path=%JAVA_HOME%\bin;%Path%
echo Java version
위 코드를 사용하여 쉘 스크립트를 실행, 환경 변수 변경이 가능하다.
나같은 경우 기본 자바는 11로 설정하고, 특정 프로그램을 실행 할 떄만 17버전을 사용하도록 설정해야했다.
test.bat 배치 파일의 JAR 파일에만 Java 17을 적용하고자 했고, test.bat 내부에서 JAVA_HOME을 임시로 변경하였다.
작성한 배치 파일은 아래와 같다.
@echo off
setlocal
set JAVA_HOME=C;test\java\java17
set PATH=%JAVA_HOME%\bin;%PATH%
java -version
java -jar test..jar
endlocal
차례대로 설명하자면
echo off는 명령어 출력 없이 결과값만 출력
setlocal은 기존 환경 변수 변경 없이 test.bat 파일 내에서만 적용되도로 ㄱ하는 것
그리고 java_home을 java 17 경로로 설정하고 java17의 bin폴더를 path의 최상단에 추가하였다.
java -version 으로 적용된 java 버전을 확인하고
java -jar test.jar 로 jar 파일을 실행하였다.
endlocal로 기존 환경 변수를 유지하도록 (원래 java 버전으로 돌아가도록) 하였다.
이후 test.bat 로 해당 JAR 파일만 JAVA 17로 실행하도록 하였다.
cmd > test.bat 실행
해당 방법으로 기존 java 버전을 유지한 채 특정 자바 버전으로 프로그램을 실행할 수 있다.