블로그 이름

[JAVA] 자바 버전 여러 개 활용하기 (프로그램 실행 시 자바 버전 변경) 본문

개발/Java

[JAVA] 자바 버전 여러 개 활용하기 (프로그램 실행 시 자바 버전 변경)

Hide 2025. 2. 12. 22:47

자바 버전별로 호환되는 프로그램이 다른 경우가 있다.

자바 버전이 다르면 잘 되던게 안되는 현상이 생긴다. 때문에 자바 버전을 여러 개 사용할 수 있는 방법이 있다.

스크립트로 환경 변수를 바꿔주는 방법이다.

 

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 버전을 유지한 채 특정 자바 버전으로 프로그램을 실행할 수 있다.