
JDK 1.8, JDK 11 설치 및 환경변수 설정 방법
Oracle JDK, Zulu 환경 설정하기
자바(Java) 또는 코틀린(Kotlin) 기반의 프로그램을 개발할 때 필요한 2가지 도구 중 하나는 자바 개발 키트(Java Development Kit, JDK)입니다. 이번 시간에는 JDK란 무엇인지, JDK를 다운로드 및 설치하는 방법, 그리고 자바 환경 변수를 설정하는 방법을 알아보겠습니다.
JDK 개요
정의
JDK는 자바 기반의 소프트웨어를 개발하기 위한 도구들로 이루어진 패키지입니다. JDK는 자바 런타임 환경(Java Runtime Environment, JRE), 컴파일러(compiler), 자바 라이브러리(library), 디버거(debugger) 등으로 이루어져 있습니다. JRE는 자바 코드를 실행하는 데 필요한 프로그램이고, javac 컴파일러는 자바 코드 파일(.java)을 자바 바이트코드(Java Bytecode) 파일(.class)로 번역해줍니다.
자바/코틀린은 자바 가상 머신(Java Virtual Machine, JVM) 위에서 동작하는 언어입니다. 컴파일러가 있어야 JVM이 이해하고 실행할 수 있는 언어로 번역해 줄 수 있습니다. 한마디로 JDK란 자바 프로그램을 만들기 위한 종합 개발 도구 모음입니다.
개발 과정
JDK는 [Java Community Process(JCP)][] 프로그램의 전 세계 구성원들이 국제적으로 표준화하고 승인한 자바 기술 명세서(technology specifications)에 따라 만들어집니다. JCP는 자바 기술에 관한 의견을 공유하고 더 나은 기술을 개발하기 위해 만들어진 자바 커뮤니티입니다.
전 세계의 JDK 공급자들은 JCP가 정의한 명세서에 따라 JDK를 개발하고 이를 사용자에게 제공합니다. 각 벤더들은 어떤 JDK를 샘플로 참조하여 각 회사에 적합한 JDK를 만드는데, 이때 기반이 되는 프로토타입의 JDK를 OpenJDK(Open Java Development Kit)라고 합니다.
OpenJDK는 자바 스탠다드 에디션(Java Standard Edtion, Java SE)의 공식 참조 구현(reference implementation)으로 많은 JDK 공급자들에게 샘플 JDK 역할을 합니다. OpenJDK의 개발에는 오라클을 포함해 OpenJDK 커뮤니티 구성원들과 Red Hat, Azul Systems, IBM, Apple 등의 국제적인 IT기업이 참여합니다. 자바 10 부터는 OpenJDK 대신 JDK Project 라는 이름으로 OpenJDK 버전의 흐름을 이어가고 있습니다.
- 참조 구현(reference implementation)
- 다른 사람들이 특정 하드웨어 또는 소프트웨어를 구현하는 것을 돕기 위해 제공하는 샘플 프로그램
종류
JDK는 유료 버전과 무료 버전으로 나누어 집니다. 유료 JDK를 사용하려면 벤더에게 JDK 라이브러리에 대한 라이선스 사용료를 지불해야합니다. 오라클의 장기지원(Long Term Support, LTS) 버전의 JDK가 대표적인 유료 JDK입니다. OracleJDK 역시 OpenJDK를 기반으로 만들어졌고, OpenJDK에 비해 안정성이 중요한 기업 고객에게 더 나은 선택지를 제공합니다.
무료 JDK는 오픈 소스 기반의 버전입니다. 누구든 가져가서 자유롭게 사용할 수 있습니다. 무료 JDK에는 이클립스 어댑티움(Eclipse Adoptium), 아마존 코레토(Amazon Corretto) 등이 있습니다. 더 많은 무료 JDK의 종류와 각 JDK를 제공하는 벤더의 리스트는 위키피디아 OpenJDK 리스트를 참조하시면 됩니다.
이 글에서는 OracleJDK의 무료 버전(Java 11/JDK 11)과 아줄 시스템(Azul Systems)의 JDK인 Zulu (Java 8/JDK 1.8)를 다운로드하고 설치하는 법을 알아보겠습니다.
Java8, Java11 등 자바 다음에 나오는 숫자는 자바 언어의 스펙입니다. 숫자가 높아질수록 최근에 나온 버전입니다. 버전 정보로 1.3, 1.5 등 소수점으로 표기했지만, 자바5부터는 마케팅 목적으로 정수를 사용하기 시작했습니다. 자바 8, 자바 8.0, 자바 1.8은 모두 같은 버전을 의미합니다.
다운로드 및 설치
오라클 JDK
오라클의 자바 스탠다드 에디션(Java Standard Edtion, Java SE)에는 여러 버전이 있지만 여기서는 JDK 11을 다운로드하겠습니다. JDK 11은 자바 SE 11 또는 줄여서 자바11이라고 부르기도 합니다. 자바 11은 2022년을 기준으로 현재 사용되고 있는 애플리케이션의 48%에서 사용되고 있습니다. 또한, 2020년을 기준으로 기업에서 많이 사용하는 자바 8(JDK 1.8)을 지원합니다. 먼저 오라클의 공식 웹사이트로 이동하겠습니다. 링크는 다음과 같습니다.
https://www.oracle.com/java/technologies/downloads/
화면에서 스크롤을 내리면 아래와 같이 Java 11이라고 표시된 영역이 나옵니다.

여기서 Java 11을 클릭하시고 사용하고 계신 운영체제에 맞는 JDK 버전을 다운로드하시면 됩니다. 여기서는 윈도우(Windows) 버전을 다운로드하겠습니다. 파일을 누르면 다음과 같이 정책 동의를 요청하는 창이 나옵니다.

요청란에 체크하고 다운로드 버튼을 클릭하면 오라클의 로그인 화면이 나타납니다.

오라클 JDK를 사용하려면 회원가입이 필요합니다. 계정을 생성하고 로그인하신 뒤 설치를 이어가시면 됩니다. 다음은 Azul JDK를 다운로드해보겠습니다.
Zulu
Zulu는 Azul Systems 공식 홈페이지에서 다운로드할 수 있습니다. 이번에는 JDK 1.8 버전을 설치하겠습니다. LTS가 붙은 버전은 장기 지원 서비스(Long Term Service, LTS)를 받을 수 있는 버전으로 호환성과 안정성이 높습니다. 공식 홈페이지 들어가셔서 다음과 같이 사용하고 계시는 운영체제에 맞는 버전을 설치해 주세요.

다운로드한 파일을 설치 마법사로 실행할 때는 기본 설정 그대로 설치하시면 됩니다.
OpenJDK
OpenJDK를 직접 다운로드하고 싶으시다면 [OpenJDK 공식 홈페이지][] 또는 OpenJDK 깃허브를 참조하시면 됩니다.
JDK 설치를 마쳤다면 다음은 환경 변수(environment variable)를 설정할 차례입니다.
환경변수 설정
목적
환경변수를 설정하는 이유는 명령 프롬프트(command prompt, cmd.exe)에서 현재 디렉토리 위치에 관계없이 파일을 실행하기 위해서입니다. 프롬프트에서는 사용자가 명령을 하면 해당 명령이 프롬프트의 내장 명령어인지 확인합니다. 내장 명령어는 바로 실행하지만, 내장 명령어가 아니라면 프롬프트는 해당 명령을 파일의 이름으로 인식하고, 명령과 동일한 이름을 가진 실행파일(.exe)을 실행하려고 합니다. 실행하려는 파일이 현재 폴더에 없다면 오류가 발생하고요.
자바의 경우도 이와 동일합니다. 자바 코드 파일을 컴파일할 때는 cmd에서 javac
를 입력합니다. javac
는 프롬프트의 내장 명령어가 아니기 때문에, 프롬프트에서는 현재 사용자가 있는 디렉토리에서 javac.exe
파일을 실행하려고 합니다. 따라서 javac.exe
파일이 없는 디렉토리에서 'javac' 명령을 통해 해당 파일을 실행하려고 하면 오류가 발생합니다.
그럼 javac.exe
파일이 있는 JDK 폴더의 bin
디렉토리로 이동해서 명령을 입력하면 됩니다. 환경변수를 등록하지 않고 자바 파일을 컴파일 하고 싶을 때마다 이 작업을 반복해서 수행해야 한다면 번거로울 것입니다. 하지만 환경변수를 등록하면 이 반복 작업을 없앨 수 있습니다. 컴파일하려는 자바 파일이 위치한 디렉토리에서 javac
를 입력하고 파일명과 파일의 확장자를 입력하면 컴파일이 가능해집니다.
javajavac Test.java
그럼 환경변수는 어떻게 등록할까요?
등록 방법
환경변수를 등록하는 방법은 GUI를 이용하는 법과 cmd를 이용하는 법으로 나뉩니다. 여기서는 윈도우를 기준으로, path 환경변수에 javac.exe
파일이 있는 디렉토리 경로를 등록하는 법을 알아보겠습니다.
GUI
아래와 같이 시스템 속성 -> 환경변수 -> 새로 만들기로 이동하면 path 환경변수를 설정할 수 있습니다.

윈도우 탐색기의 내 PC에서 오른쪽 버튼을 누른 후 속성 -> 고급 시스템 설정 -> 환경변수로 이동해도 됩니다.
사용자 변수는 해당 사용자에게만 적용됩니다. 전체 시스템에 적용하고 싶으면 시스템 변수를 선택하면 됩니다. 다운로드한 JDK 폴더의 이름이 JDK-19
라면, javac.exe
파일이 위치한 C:\Users\JDK-19\bin
경로를 환경변수로 등록하면 됩니다. 예를 들어, Zulu를 설치하실 때 JDK 설치 경로를 기본값으로 유지하셨다면, C:\Program Files\Zulu\zulu-8
을 사용하시면 됩니다.
cmd
cmd에서 직접 환경변수를 등록할 수도 있습니다. 명령어는 다음과 같습니다.
- set: 현재 명령 프롬프트에서만 사용할 환경변수 등록
- setx -m: 영구적으로 사용할 환경변수 등록
- UserPath: 사용자 변수 등록
- SystemPath: 시스템 변수 등록
예를 들어 cmd에서 영구적으로 사용할 시스템 변수를 등록하고 싶다면 아래 코드를 이용하면 됩니다.
shellsetx SystemPath "C:\Users\JDK-19\bin" -m
시스템 변수를 만들었다면 실제로 변수가 잘 저장되었는지 확인해 보겠습니다. 저장한 시스템 변수의 경로 목록은 시스템 변수의 Path에서 확인할 수 있습니다. 시스템 변수에서 Path를 더블 클릭하면 환경변수 경로 목록이 나타납니다. 아래와 같이 C:\Program Files\Zulu\zulu-8\bin\
이 생겼다면 우리가 설정한 환경변수가 잘 저장된 것입니다.

그러면 이제 등록한 환경변수와 설치한 JDK 버전을 cmd에서 확인해 보겠습니다.
확인
환경변수
cmd에서 path
명령어를 입력하면 환경변수명이 Path
인 환경변수에 등록한 모든 경로를 확인할 수 있습니다. 이전에 등록한 경로가 나타나면 잘 등록된 것입니다. 만일 등록한 경로가 보이지 않는다면 명령 프롬프트를 다시 실행하시면 됩니다. set
명령어를 입력하면 모든 환경변수 목록을 출력할 수 있습니다.
JDK 버전
JDK 버전을 확인하려면 cmd를 열고 코드 java -version
을 입력하시면 됩니다. 다음과 같이 JDK 버전이 출력되면 프로그램이 잘 설치된 것입니다.

javac -version
을 입력하면 javac 컴파일러 버전을 확인할 수 있습니다.
지금까지 JDK란 무엇인지 JDK의 정의와 개발 과정, 종류를 살펴보고, JDK를 설치하며 환경 변수를 설정하는 법을 알아보았습니다. 자바 혹은 코틀린으로 개발하기 위해서는 JDK 외에도 다른 나머지 도구가 필요합니다. 바로 통합 개발 환경(Integrated Development Environment, IDE)입니다. IDE없이 텍스트 에디터(text editor)만으로도 개발을 할 수 있지만, 자바와 같이 컴파일(compile)이 필요한 언어의 경우 IDE를 사용하면 훨씬 편리합니다. 더 자세한 내용을 알고 싶은 분들은 아래 글을 참조하셔도 좋을 것 같습니다. 모두 수고 많으셨습니다.
- 전 세계 개발자들이 사용하는 다양한 종류의 IDE를 알고 싶다면? 통합 개발 환경(IDE), 텍스트 에디터 인기 순위 (2022년)
- 자바/코틀린을 위한 IDE 설정 방법을 알고 싶다면? (예정)
- IDE 없이 개발하고 싶다면? (예정)
참고 문헌
- [1] 런던살자, 「[Window]명령 프롬프트 창 환경변수 조회와 등록 방법(CMD set, setx 명령어)」, 런던맨의 하루, "https://sosobaba.tistory.com/193"
- [2] Baeldung, 「Differences Between Oracle JDK and OpenJDK」, Baeldung blog, "https://www.baeldung.com/oracle-jdk-vs-openjdk"
- [3] Paul Krill, 「"오라클 시들, 아마존 상승세" 2022 자바 생태계 현황 보고서」, IT World, "https://www.itworld.co.kr/news/234654"