노력과 삽질 퇴적물

JAVA: 멀티 jdk 스위칭 본문

📂기초 및 세팅 note/언어. JAVA & JDK 계열

JAVA: 멀티 jdk 스위칭

MTG 2022. 10. 20. 00:28

[이미지 출처: ???]
파트1  
 
 1. bat 파일
 1)  bat파일
 2) 기타
0. 필요한 파일
파일명
예시경로
jdk-11.0.16_windows-x64_bin C:\Java\jdk_11.0.16
jdk-15.0.2_windows-x64_bin C:\Java\jdk_15.0.2
jdk-17.0.4.1_windows-x64_bin C:\Java\jdk_17.0.4.1

* 기본적으로 스프링부트에서 지원되는 JDK버전 위주로 설치했습니다. 15의 경우 한글이 정상적으로 지원되는 JDK중 최신 버전이라는 포스팅을 봐서 스프링부트에서는 지원 종료가 됐어도 설치했습니다.
* 결론에도 언급하겠지만, JDK를 여러개 쓸 경우 zip버전으로 하는게 나은거 같습니다.
* 도커 / SDKMAN&direnv / mise 도입도 생각해봤지만, 2024년 하반기 기준 250GB인 제 SSD로는 무리더군요. 예산이슈 [2024-10-24]
1. bat 파일
1) bat파일 📂
-> 모아놓은 경로: D:\dev_lib
-> setx실행후,
새 CMD창에서 버전을 확인해야 새로 설정한 JDK로 확인이 가능하다보니
setx 이후에 start cmd /k 로 적용된 JDK버전을 확인하게 절차를 수정.
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
echo switch JDK -BEFORE-
javac -version
java --version
 
set TARGET_JDK=C:\Java\jdk_11.0.16
:: set TARGET_JDK=C:\Java\jdk_15.0.2
:: set TARGET_JDK=C:\Java\jdk_17.0.4.1
 
setx /m DEV_JAVA "%TARGET_JDK%;%TARGET_JDK%\bin;%TARGET_JDK%\lib;"
 
start "switch JDK -AFTER-" cmd /"echo switch JDK -AFTER- && echo _____  && %TARGET_JDK%\bin\java.exe -version && %TARGET_JDK%\bin\java.exe --version"
pause
cs

 각 bat파일을 D:\dev_lib에 모아놓고, 바로가기를 생성해 '관리자 권한으로 실행'옵션을 걸었습니다.


2) 기타 📂
-> JDK에 대한 시스템 변수를 입력해도 java --version등으로 출력되는 정보가 고정되어 있다.
: 튜토리얼에 나온대로 setx를 사용해도 스위칭이 안 되더군요. 혹시나 CMD를 새로 열어서 확인해도 마찬가지;;;

exe/msi등으로 설치하면서 자동으로 입력된 경로가 원인이였습니다.
[C:\Program Files\Common Files\Oracle\Java\javapath]를 삭제했지만, 저는 효과가 없더군요. 이제부터는 zip버전을 애용하는걸로 교훈을
기타. 참조자료
1) 한국어 📂


2) 영어 📂
How to switch between Multiple JDKs (JAVA) on Windows
windows - How do I start cmd.exe /k with multiple commands? - Stack Overflow
기타. 변경 내력
일자
변경 내력
2022-10-15 초안 작성.
2024-10-24 포스팅 신규 양식 적용(ver.202408)
bat파일 스크립트 편의성 추가
포스팅 제목 변경
  (변경전) JAVA: 멀티 jdk 스위칭
  (변경후) 
JAVA: 멀티 jdk 스위칭 배치파일

'📂기초 및 세팅 note > 언어. JAVA & JDK 계열' 카테고리의 다른 글

변수 명명 규칙  (0) 2014.11.27
JAVA: 맵/콜렉션 선택하기  (0) 2014.09.21
JAVA: 시간과 날짜  (0) 2013.07.12
JAVA: 간단한 응용프로그램  (0) 2012.08.28
JAVA: 스레드  (0) 2012.08.27