Sitemap
Doogie.Medium

Doogie.Medium

macOS zulu JDK 설치

8 min readDec 3, 2025

--

9 Apr 2019.

어떤 버젼의 JDK를 사용할 것인가?

  • Oracle java는 License문제가 있다. openjdk를 Oracle은 제공한다.
  • Zulu애들이 openjdk를 기반으로 지들이 만든 패키지를 만들어 놨다. 지들도 돈 좀 받겠단다.
  • Zulu애들게 성능도 좋고, Appet등이 없는 깔끔한 버젼을 왠만한 경우는 무료로 사용할 수는 있다.

<aside> 💡 맥에 기본적으로 설정 되어 있는 /System/Library/Frameworks/JavaVM.framework/Versions/*완 관련된 내용은 건드리지 않는게 좋겠다. (맥 처음 설치시에 java가 설치되어 있지는 않지만, 사용하려고 하면, Oracle java설치하도록 가이드가 되어 있다.) 해당 위치의 내용은 Mac에서 Java를 일관되게 수용학여 macos내부에서 활용하기 위한 abstract wrapper로 보인다. 아무 java가 설치되어 있지 않으면, 해당 위치의 내용물은 아무것도 할 수 없는 껍데기 들이다.

</aside>

openjdk를 기반으로한 zulu jdk의 설치

Azul 에서 dmg로 되어 있는 jdk를 다운로드 한다. (zip으로 되어 있는 것으로 해도 되지만 설치된 위치에서 디렉토리가 조금 다르다.) 다양한 java버젼을 사용하는 것을 위해, Java 11(LTS)의 11.0.4+11버전을 다운 받아 설치 한다. 필요시 기존 Sun, Oracle java와의 호환 관계를 위해 Java 8(LTS)의 8u222-b10버젼도 다운 받아 설치 한다. 각각 설치 된 위치는 아래와 같다.

$ pwd
/Library/Java/JavaVirtualMachines
$ ll
drwxr-xr-x 3 root wheel 102 7 29 13:00 zulu-11.jdk/
drwxr-xr-x 3 root wheel 102 7 29 13:02 zulu-8.jdk/
$

맥에 기본(?)으로 /usr/libexec에 설치되어 있는 java_home 으로 확인해 보자. (나는 java_home의 디렉토리명을 넣는게 귀찮아서 java_home을 /usr/local/bin에 synbolic link걸어 두었다.)

$ pwd
/usr/local/bin
$ sudo ln -s /usr/libexec/java_home

여러개의 zulu jdk버젼을 설치 했다면, 다음과 같이 확인이 가능하다.

$ java_home
/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
$ java_home -v 11
/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
$ java_home -v 1.8
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
$ java_home -V
Matching Java Virtual Machines (2):
11.0.2, x86_64: "OpenJDK 11.0.2" /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
1.8.0_201, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk.bak/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
$

IDE개발 툴들에서 jdk를 사용하거나, 만들어진 Application들은 사용할 JDK를 지정하는 방법으로 원하는 버젼을 사용할 수 있지만, OS의 운용환경에서 사용할 JDK를 지정하기 위해 다음과 같이 쉘 환경에 등록해 두고 사용한다.

$ cat .zshrc
... ommitted ...
export JAVA_HOME=$(java_home -v 11)
export PATH=$JAVA_HOME/bin:$PATH
*alias setJava8='export JAVA_HOME=$(java_home -v 1.8)'
alias setJava11='export JAVA_HOME=$(java_home -v 11)'
alias setJava11='export JAVA_HOME=$(java_home -v 17)'
alias setJava11='export JAVA_HOME=$(java_home -v 21)'*
$

최종적으로 사용할 java가 어떤 것인지 확인해 본다. 물론 이것은 OS environments에만 적용되는 것이다.

$ which java
$ java -version
$ javac -version

설치되어 있는 java들중 하나를 OS 및 shell환경에서 기본으로 사용하려면, 아래를 참고한다. IDE 개발툴 환경에서는 IDE Tool에서 사용할 java를 지정하면되고, 만들어진 java App을 독립적으로 실행할때는 OS, shell환경을 따르거나, 실행 스크립트에서 사용할 java와 jar 라이브러리들을 지정하여 사용한다.

$ cat .zshrc
... omitted ...
export JAVA_HOME=$(java_home -v 21)
export PATH=$JAVA_HOME/bin:$PATH
... omitted ...
$ . ./.zshrc

zulu jdk삭제

아래에 있는 oracle jdk 11 삭제하는 방법과 동일하다. 절대로 /usr/bin 및 /System/Library/Frameworks 쪽의 내용은 건들지 마라.

Oracle JDK 11 삭제

멋모르고 Oracle JDK11을 설치했다면 참고해라.

Get Doogie.Medium’s stories in your inbox

Join Medium for free to get updates from this writer.

현재 설치되어 있는 JDK 확인

$/usr/libexec/java_home -V
Matching Java Virtual Machines (2):
11.0.2, x86_64: "OpenJDK 11.0.2" /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
1.8.0_201, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk.bak/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
$

특정 버전의 JDK 삭제

$ sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/
$ sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk.bak/

OracleJDK의 플러그인 등 관련 파일 삭제

$ sudo rm -fr /Library/Internet\\ Plug-Ins/JavaAppletPlugin.plugin/
$ sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefPane
$ sudo rm -fr ~/Library/Application\\ Support/Oracle/Java/

현재 설치되어 있는 JDK 버전 확인

기존에 존재하던 JDK 버전을 모두 삭제했기 때문에 아래와 같이 0건으로 표시되어야 합니다.

$ java_home -V
Unable to find any JVMs matching version "(null)".
Matching Java Virtual Machines (0):
Default Java Virtual Machines (0):No Java runtime present, try --request to install.
$

OpenJDK 설치

https://www.azul.com/downloads/zulu-community/?&architecture=x86-64-bit&package=jdk

참고자료

+==

--

--