자바 환경변수 설정이 필요한 이유?

Kang Dong Hyun·2023년 1월 17일
0
post-thumbnail

구글에 검색해보면 자바 환경변수를 설정해야 하는 방법을 찾아 따라하면 누구나 설정할 수 있다. 따라서 이 부분은 생략하고 환경변수를 왜 설정해야하는지 그리고 환경변수를 설정할 때 나오는 개념들에 대해 정리해보겠다.

환경변수란?
환경변수란 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임이다.
또는 ‘운영체제가 참조하는 변수’라는 정의가 있다.

운영체제란 하드웨어를 사용할 수 있게끔 해주는 프로그램이다. 운영체제가 없으면 하드웨어 위에 어플리케이션을 올릴 수 없다. (운영체제가 아닌 프로그램은 모두 어플리케이션이라고 한다.) 이 때 운영체제가 컴퓨터의 어떤 경로에서든 특정 파일(파일의 형식으로 되어있는 어플리케이션)을 인식할 수 있도록 환경변수를 등록하는 것이다.(환경변수를 설정하지 않으면 cmd 창에서 java를 사용할 수 없다.)

환경변수를 설정할 때 jdk의 경로가 필요하다. 왜일까? 자바를 다운로드 받아 디렉토리로 들어가보면 jdk와 jre라는 두 가지 경로가 있다. 이 둘의 역할은 뭘까?

jdk(java development kit) - 개발과 실행이 동시에 가능한 디렉토리

JDK는 자바 개발키트(Java Development Kit)의 약자로 이름 그대로 개발자들이 자바로 개발하는 데 사용된다. JDK안에는 개발 시 필요한 라이브러리들과 javac, javadoc 등의 개발 도구들을 포함되어 있고 개발을 하려면 당연히 실행도 시켜줘야 하기 때문에 JRE (Java Runtime Environment)도 함께 포함되어 있다.

jre(java runtime environment) - 실행만 가능한 디렉토리

JRE는 자바 실행 환경(Java Runtime Environment)의 약자로 자바로 만들어진 프로그램을 실행시키는데 필요한 라이브러리들과 각종 API, 그리고 자바 가상 머신(JVM)이 포함되어 있다. JRE는 자바로 "개발(쓰기)은 안되고 실행(읽기)만 된다"라고 생각하면 된다.

환경변수를 설정하고 나면 우리는 javac라는 명령어를 명령 프롬프트에 입력하여 설정이 제대로 되었는지 확인한다. 그런데 java라는 명령어도 써본적이 있지 않은가? javac와 java의 차이점은 무엇일까?

javac는 .java 파일을 .class 파일로 변환시켜주는 컴파일러를 의미한다. 그래서 Hello.java파일이 있다는 가정하에 javac Hello.java라는 명령어를 입력하면 Hello.class라는 파일이 생성될 것이다. 이와 다르게 java는 javac로 컴파일된 .class 파일을 실행하는 명령어이다. 그래서 java Hello.java라는 명령어를 입력하면 Hello.java파일 안의 내용이 실행된다.

Ubuntu에서 java 환경변수 설치하기

profile
초보개발자의 스터디공간

0개의 댓글