====== Java/JDK on Ubuntu/Debian ====== * 기본적으로 OpenJDK가 깔려있다. * [[java:jabba|Jabba]], [[java:jenv|jenv]], [[:sdkman|sdkman]] * ''sudo update-java-alternatives'' 명령으로 기본 자바 환경을 지정할 수 있다. # java 목록 보기 sudo update-alternatives --list java # java, javac 설정 sudo update-alternatives --config java sudo update-alternatives --config javac # 명령행으로 직접 설정 - openjdk-11 sudo update-alternatives --set java /usr/lib/jvm/java-11-openjdk-amd64/bin/java sudo update-alternatives --set javac /usr/lib/jvm/java-11-openjdk-amd64/bin/javac * JDK 다운받아서 설치하고 ''update-alternatives''해주는 도구 : https://github.com/chrishantha/install-java ===== Adoptium ===== * https://adoptium.net ===== OpenJDK PPA ===== * Ubuntu 20.04 의 경우 굳이 PPA 없어도 충분히 기본 리포지토리에 있다. * [[https://dzone.com/articles/installing-openjdk-11-on-ubuntu-1804-for-real|Installing OpenJDK 11 on Ubuntu 18.04 - DZone Java]] * https://launchpad.net/~openjdk-r/+archive/ubuntu/ppa * OpenJDK 도 7 이후부터는 Oracle JDK와 거의 차이가 없으므로 그냥 사용해도 된다. sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update ===== Oracle JDK PPA ===== * [[java:oraclejdk|Oracle JDK]] * Java 11부터. Oracle Java 공식 홈페이지에서 ''deb'' 패키지 제공중 * [[https://launchpad.net/~linuxuprising/+archive/ubuntu/java|linuxuprising/java ppa]] * [[https://www.linuxuprising.com/2020/09/how-to-install-oracle-java-15-on-ubuntu.html|How To Install Oracle Java 15 On Ubuntu, Debian Or Linux Mint Using APT PPA Repository - Linux Uprising Blog]] * 설치시에 라이센스 허가를 묻는데 이를 자동으로 하려면 다음 설정을 한다. echo oracle-java15-installer shared/accepted-oracle-license-v1-2 select true | sudo /usr/bin/debconf-set-selections # 위에게 안되면, echo oracle-java15-installer shared/accepted-oracle-licence-v1-2 boolean true | sudo /usr/bin/debconf-set-selections * [[https://gist.github.com/P7h/9741922|Script to download JDK / JRE / Java binaries from Oracle website from terminal / shell / command line / command prompt]] ===== AWS Corretto ===== * https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/generic-linux-install.html ===== Zulu ===== * https://docs.azul.com/zulu/zuludocs/ZuluUserGuide/PrepareZuluPlatform/AttachAPTRepositoryUbuntuOrDebianSys.htm ===== 구버전(1.4 이하 설치) ===== * 현재 **AMD64** Linux 에서는 과거 1.4 이전의 **ia64** 버전의 JDK는 설치나 실행이 안되는 것으로 보인다. * ''unzip filename.bin''으로 강제로 압축을 풀더라도 binary가 실행이 안된다. * 따라서 32bit(i586) 버전으로만 설치 가능하다. * JDK 1.3의 경우 shell script에 ''x86_64'' 에 대한 분기문 처리가 없어서 모든 스크립트에서 x86_64를 만나면 i386으로 간주하는 코드를 넣어야만 올바로 작동하며, 그렇다해도 최종적으로 라이브러리 버전이 안 맞아서 작동하지 않았다. 따라서 1.3 이하는 사용하기 매우 어렵다. ===== 한글 글꼴 깨짐(Linux Java Hangul Font) ===== * Java Swing/AWT 애플리케이션을 실행할 때 기본 글꼴을 사용하고 글꼴 변경이 불가능한 애플리케이션일 경우에 한글 글꼴이 네모 박스로 깨져 나오는 현상이 발생할 수 있다. * ''$JAVA_HOME/jre/lib/fontconfig.Ubuntu.properties.src''(혹은 자기 Linux 운영체제에 맞는 이름의 파일)을 ''fontconfig.properties''로 복사한다. * 그리고 ''fontconfig.properties''를 열어보면 ttf 파일들에 대한 경로가 있는데 그 중에 한글 관련 파일 경로가 잘못되어 있을 것이다. 이를 UnFont든, Baemuk 이든 올바른 파일을 가리키도록 변경하거나 파일의 Symbolic Link를 걸어준다. * ''$JAVA_HOME/bin/jvisualvm'' 등을 실행해서 한글이 나오는 부분들이 올바르게 보이는지 확인한다.