[Java] Windows / gitbash 자바 환경변수 설정하여 버전 관리
멋사 수업이 끝난 뒤 지금까지 해왔던 프로젝트를 정리하고 리팩토링하던 중
초반에 사용했던 프로젝트와 현재 진행중인 프로젝트의 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
📊 https://velog.io/@kwj1830/JAVA-%EB%B2%84%EC%A0%84-%EA%B4%80%EB%A6%AC