자바 환경 변수 PATH를 설정하는 이유

환경 변수(Environment Variable)는 운영 환경에서 참조할 수 있도록 명명한 값을 의미합니다. 윈도우, 리눅스, 맥 등 모든 운영체제(OS)는 환경 변수를 사용합니다. 그중에서도 환경 변수 Path는 가장 많이 사용되는 환경 변수입니다. OS는 Path에 정의된 경로를 통해 실행 파일이 있는 위치를 결정합니다.

 

예를 들어 설명하겠습니다. 명령 프롬프트(CMD)를 켜고 ipconfig를 치면 컴퓨터의 IP 구성을 확인할 수 있습니다. netstat를 치면 네트워크 연결 상태를 확인할 수 있습니다. 저는 처음 이런 작업을 했을 때 cmd는 명령에 대한 답을 해주는 하나의 독립적인 프로그램인 줄 오해했습니다. 사실은 ipconfig와 netstat라는 명령을 내리면 cmd가 ipconfig.exenetstat.exe라는 프로그램을 실행해주는 것이었습니다.

 

윈도우에 ipconfig.exe와 netstat.exe 파일이 위치한 경로는 C:\Windows\System32입니다. 윈도우의 cmd와 리눅스의 터미널 등 CLI(명령 줄 인터페이스) 환경에서 특정 파일을 실행하기 위해선 cd 명령어를 통해 그 파일이 있는 경로로 이동하거나 파일명을 포함한 전체 경로를 적어줘야 합니다.

 

그런데 어떻게 ipconfig와 netstat는 어떤 경로에서든 실행할 수 있을까요? C:\Windows\System32라는 경로를 환경 변수 Path에 미리 저장해 놨기 때문입니다. ipconfig를 입력하면 윈도우는 환경 변수에 있는 모든 경로를 검색하고 해당 프로그램을 자동으로 찾습니다. 만약 abc라는 명령어를 입력했고 그러한 작업을 모두 마쳤는데도 프로그램을 찾지 못하면 아래 사진 같은 오류를 뱉어내는 겁니다.

cmd에 abc를 입력하자 오류가 발생한다.
cmd에 abc를 입력하자 오류가 발생한다.

자바 환경 변수 설정하는 이유

OS에 JDK를 설치하면 자바 환경 변수를 설정합니다. 이때 Path에 JDK의 bin 폴더 경로를 저장합니다. Path에 bin 경로를 저장함으로써 모든 실행 파일을 문제없이 사용하기 위해서입니다. bin 폴더에는 java.exe, javac.exe 등 실행 파일이 있습니다.

 

두 파일은 자바 콘솔 기반 프로그램을 실행하기 위해 반드시 필요합니다. 자바라는 언어는 사람이 이해할 수 있는 형태의 소스 코드입니다. 컴퓨터는 소스 코드가 아닌 0과 1만 이해할 수 있습니다. 번역이 필요합니다. 소스 코드를 컴퓨터가 이해할 수 있는 언어로 바꿔주는 프로그램을 컴파일러라고 부릅니다. javac.exe는 자바 컴파일러입니다. .java 확장자 파일을 .class 확장자 파일로 만들어 줍니다. java.exe는 .class 파일을 실행합니다.

jdk의 bin 폴더 환경 변수 path를 설정한다.
환경 변수 path 설정 예시

사용자 변수와 시스템 변수의 차이

환경 변수에는 사용자 변수와 시스템 변수 두 가지를 설정할 수 있습니다. 사용자 변수는 윈도우에 로그인 한 특정 사용자만 사용하는 환경 변수입니다. 반면 시스템 변수는 모든 사용자에게 적용되는 환경 변수입니다. 크게 중요한 건 아닙니다만 보통 더 포괄적인 개념인 시스템 변수를 설정하도록 가이드하는 거 같습니다.

반응형

댓글

Designed by JB FACTORY