깨알 개념/기타

[Java] 설치, JRE와 JDK의 차이, 환경 변수 설정

interfacer_han 2023. 12. 8. 12:16

#1 JRE와 JDK의 차이

Gradle을 설치해서, Java 프로젝트를 Gradle을 통해 직접 빌드해보려고 했다. 먼저, Gradle은 Java를 요구하므로 Java를 먼저 설치한다. "자바를 설치한다"라는 건 크게 2가지의 의미로 나뉜다. 바로 JRE(Java Runtime Environment)를 설치하느냐, JDK(Java Development Kit)를 설치하느냐다. 비유하자면 JRE는 이미지 뷰어고 JDK는 이미지 편집기다. 둘다 Java를 실행시키는 일을 할 수 있지만, Java 개발은 JDK만 가능하다. JDK는 JRE의 기능에 더해 자바 컴파일러(javac)와 디버그 및 빌드 관련 기능을 가지고 있다. 자바는 분명 설치한 것 같은데, 마치 설치되지 않은 것처럼 동작한다면, JDK가 아니라 JRE를 설치한 것은 아닌지 확인할 필요가 있다. Gradle에서도 마찬가지로, JRE로는 Gradle을 작동시킬 수 없다. 개발을 하지 않는 사람이라면 더 작은 용량의 JRE를 선택하면 되겠지만, 개발자라면 사실상 필수적으로 JDK를 설치해야 한다. 
 

#2 환경 변수 설정

#2-1

환경 변수란, 운영체제(= 환경) 입장에서 해당 프로세스를 실행시키기위해 참조하는 변수다. JDK를 설치했다면, 설치한 위치를 환경 변수에 등록해주어야 운영체제가 이를 인식할 수 있다. JDK를 제대로 설치했음에도 마치 설치되지 않은 것처럼 동작하는 이유는 환경 변수와 관련된 문제일 확률이 매우 높다.
 

#2-2

JAVA_HOME 이라는 이름과 사람마다 다를 설치 경로명을 값으로서 지니는 환경 변수를 등록한다.

#2-3

Path라는 이름의 환경 변수가 있다. cmd 등의 CLI(Command-Line Interface)에서 실행 파일명을 입력하여 그 프로그램을 실행할 때 현재 디렉토리에 실행 파일명이 없는 경우, 운영 체제는 이 Path에 설정된 경로명에서 실행 파일명을 찾는다.
 

#2-4

난 Gradle을 cmd에서 실행시킬 것이므로 JAVA_HOME 뿐만 아니라 Path 변수 또한 등록해 두겠다. %JAVA_HOME%은 환경 변수 JAVA_HOME의 값을 의미한다. 물론, 절대 경로 방식으로 기입해도 무방하다. 자바 설치 위치에 있는 bin 폴더에는 CLI 환경에서 실행 가능한 javac.bat과 같은 스크립트 파일들이 들어있다. 이제부터는 CLI에서 javac.bat이라는 스크립트 파일을 %JAVA_HOME%\bin과 전혀 다른 디렉토리에서 실행 명령 내려도, "해당 파일이 없습니다"와 같은 에러 메시지를 뱉는 대신 운영 체제가 알아서 javac.bat을 찾아 실행해 줄 것이다.
 

#3 요약

실수로 JDK 대신 JRE를 설치하지 않게 조심하자. 환경 변수는 운영체제에게 정보를 알려주기 위한 <키, 값> 변수다.
 

#4 이 개념이 사용된 글

-