====== Jabba ======
* https://github.com/shyiko/jabba
* **2020년 현재 업그레이드가 잘 안되고 있다.**
* Cross Platform Java installler
* Linux, MacOS X, Windows 모두 지원한다.
* 최근에는 그냥 설치 + [[java:jenv|jenv]] 사용중
===== Install on Windows =====
* Powershell 을 관리자 권한으로 열고서
Set-ExecutionPolicy Unrestricted
* 이후 개인권한 Powershell 을 열고서
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-Expression (
Invoke-WebRequest https://github.com/shyiko/jabba/raw/master/install.ps1 -UseBasicParsing
).Content
* 만약 아래 오류가 발생한다면 ''Set-ExecutionPolicy Unrestricted'' 이를 안해준 것이다.
. : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\\Documents\WindowsPowerShell\Microsoft.PowerShell_profile
.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)
를 참조하십시오.
위치 줄:1 문자:3
+ . 'C:\Users\\Documents\WindowsPowerShell\Microsoft.PowerShell_pr ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : 보안 오류: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
===== Uninstall =====
* ''~/.jabba'' (on Linux/Mac OS X) / ''%USERPROFILE%/.jabba'' (on Windows) 를 삭제한다.
===== Install Oracle JDK on Windows =====
jabba install 1.8
jabba install 1.10
# 1.7, 1.6 은 Oracle 홈페이지에서 다운받아서 따로 설치해서
jabba link system@1.7 C:\Development\Java\jdk1.7.0_80\
jabba link system@1.6 C:\Development\Java\jdk1.6.0_45\
===== 기본명령 =====
* ''jabba ls-remote'' : 설치 가능 버전 보기
* ''jabba install adopt@1.8.0-232'' : 설치
* ''jabba install adopt@~1.8.0-172'' : adopt의 1.8.0 대 가장 최신 설치, ''adopt@1.8.0-172'' 보다는 높고 ''adopt@1.9.0'' 보다는 낮은 버전 설치
===== link =====
* ''link'' 명령으로 임의로 설치한 JDK를 명명하고 사용할 수 있다.
# oracle.com 에서 다운로드한 Oracle JDK
jabba link system@11.0.4 /home//java/jdk-11.0.4/
jabba use system@11.0.4
java -version
# 삭제
jabba unlink system@11.0.4
===== use =====
jabba use 1.8
jabba use system@1.7
# PowerShell은 관리자 권한으로 열어서
jabba alias default 1.8
jabba use default # 이제부터 1.8 버전을 기본 java 로 계속 사용하게 된다.
===== jabba & direnv =====
* [[linux:direnv|direnv]]의 ''.envrc'' 에서 ''jabba'' 명령을 기본으로 사용할 수 없다.
* 따라서 ''jabba''가 ''.bashrc''에 추가해준 jabba loading 명령을 먼저 실행해줘야 한다.
* ''~/.direnvrc'' 공통 설정
# jabba 사용시에만 필요한 설정이므로 .envrc 에 직접 넣어줘도 됨.
[ -s "/home//.jabba/jabba.sh" ] && source "/home//.jabba/jabba.sh"
* 각 프로젝트 디렉토리의 ''.envrc''
jabba use <원하는버전>
===== Windows 에서 Java 10 이 PATH 가장 앞에 오는 현상 =====
* Windows 에서 Java 10 이 PATH 가장 앞에 와서 ''JAVA_HOME''을 무시하게 하는 현상이 발생할 수 있듬.
* 환경변수에서 ''C:\Program Files (x86)\Common Files\Oracle\Java\javapath'' 삭제
===== PowerShell에서 기본 JDK 초기화 =====
* ''$profile'' 파일에 보면 ''jabba'' 초기화 script 가 있는데 그 아래에 아래를 넣어주면 기본 JDK가 설정된다.
# 이미 default 버전 alias가 돼 있는 상태에서
jabba use default