Java

[Java] Windows / gitbash 자바 환경변수 설정하여 버전 관리

kyunge_ev 2023. 3. 7. 23:13

멋사 수업이 끝난 뒤 지금까지 해왔던 프로젝트를 정리하고 리팩토링하던 중

초반에 사용했던 프로젝트와 현재 진행중인 프로젝트의 JDK 버전이 달라 프로젝트 리팩토링 시 문제가 생겼다...

초반 프로젝트는 java11 , 현재 프로젝트는 java17...

JAVA_HOME 환경변수는 이미 java17로 셋팅되어있는 상태이기 때문에 java11 프로젝트를 열면 JDK 설정에서 멈춤 상태로 프로젝트가 열리지 않았다 :-( 

매번 JAVA_HOME의 경로를 변경하여 11, 17 를 왔다갔다 할 수도 없기 때문에 폭풍 검색!

스크립트를 작성하여 시스템 환경변수 path에 적용하면 cmd 명령어로 JAVA_HOME의 JDK를 변경할 수 있었다.

해당 내용을 까먹지 않도록 포스팅


윈도우 JAVA 버전 관리

우선, 난 초반에 java11을 현재는 java17을 사용하고 있기 때문에 두 개 다 설치되어있다.

보통 C:\Program Files\Java 이 경로에 설치됨

기본적으로 사용할 jdk는 환경변수에 설정해준다.

1. 시스템 환경 변수 편집

2. 환경 변수(N)... 클릭

시스템 변수(S) JAVA_HOME을 새로 생성하여 jdk17(기본적으로사용할 java)의 경로를 변수 값으로 넣어줌

3. 시스템 변수(S) 리스트 중 Path 클릭하여 %JAVA_HOME%\bin 입력

Path를 더블클릭하면 편집 창이 뜨는데 새로만들기를 눌러서 %JAVA_HOME%\bin를 입력해줌

이렇게 하면 원하는 java를 환경변수에 등록하여 사용할 수 있음

위와 같이하면 java17만 등록되기 때문에 java11도 같이 쓸 수 있도록 스크립트 파일 만들어 넣어줌

4. java가 있는 폴더에 scripts 폴더 새로 생성

@echo off
set JAVA_HOME=C:\Program Files\Java\jdk-11.0.17
set Path=%JAVA_HOME%\bin;%Path%
echo Java 11 activated.
java -version

scripts 폴더 안에 위의 코드를 메모장으로 작성하여 'java11.bat' 파일을 만들어준다.

코드 두번째줄 set JAVA_HOME=[이부분에 각자 jdk11 경로를 적어줌] 수정

'java17.bat'도 만들어서 동일하게 넣어준다.

5. 시스템 변수(S) 리스트 Path에 C:\Program Files\Java\scripts 를 넣어줌

cmd 를 열어서 위처럼 명령어를 치면 변경되는 것을 확인할 수 있다.


여기서 문제,

위처럼 cmd로 윈도우에서는 변경이 잘되는데

인텔리제이에 연동되어있는 gitbash로 java -version을 쳐서 확인해보니

그대로 java17이 유지되어있다...( cmd로 java11 명령어를 쳤는데도 말이다! )

난 gitbash를 터미널로 사용하고 있기 때문에 cmd 윈도우로 바꿔봤자 변경되지 않는것...

gitbash로 java 버전관리하는 방법을 폭풍 검색!

java11.sh / java17.sh - Shell 스크립트 작성

위의 .bat 스크립트를 작성한 것처럼 이번엔 조금 다르게 Shell 스크립트로 작성

저장할 위치는 .bat 파일 저장한 scripts 폴더에 한다.

#! /usr/bin/env bash
# REPLACE ~/.bash_profile or ~/.bashrc
echo "export JAVA_HOME=\"/c/Program Files/Java/jdk-11.0.17\"; export PATH=\"\$JAVA_HOME/bin:\$PATH\";" > ~/.bash_profile
cat ~/.bash_profile #파일 내용 출력
source ~/.bash_profile 
java -version #자바 버전 확인

위의 코드를 메모장에 저장한 후 java11.sh 파일 생성 scripts 폴더에 저장 java17.sh 도 마찬가지로 생성 후 저장한다.

인텔리제이에서 터미널을 열면 기존 연동되어있던 gitbash가 열리는데 어느 위치에서나 java17.sh를 입력하면 변경된다.

단, 터미널을 껐다켜야 java -version 입력시 변경된 jdk가 나온다.

 

 

이제 초반에 진행했던 프로젝트 고도화 현재 진행 중인 프로젝트 고도화를 좀 더 쉽게 진행할 수 있게 되었다!

Good!

 

 

 

 

[ 참고블로그 ]

📊 https://forgiveall.tistory.com/589

 

[Java] Java version switcher on Windows - 자바 버전 자주 바꿀 때!?

Java Version Switcher for Windows Windows 10 Home 1903에서 테스트한 내용입니다. 목차 스크립트파일 경로 지정 CMD 사용자를 위한 방법 GitBash사용자를 위한 방법 (Linux사용자도 참조 가능) 마치며 (예제요약)

forgiveall.tistory.com

📊 https://velog.io/@kwj1830/JAVA-%EB%B2%84%EC%A0%84-%EA%B4%80%EB%A6%AC

 

JAVA 버전 관리 - 윈도우

코드스테이츠나 인프런의 자바 교육은 대부분은 11버전을 사용한다.난 처음 Java 공부를 하려고 LTS버전 가장 높은걸 받다보니 17버전을 사용하고 있었다.뭐 큰 문제는 없겠지만, 앞으로 다양한 Jav

velog.io