JDK는 자바 개발 키트(Java Development Kit)의 약자로 개발자들이 Java 기반 소프트웨어를 개발하기 위한 도구들로 이뤄진 패키지 혹은 SDK 키트라고 생각하면 된다.
그래서 JDK 안에는 Java를 개발 시 필요한 라이브러리(lib)들과 javac, javadoc 등의 개발 도구들을 포함되어 있고, Java 프로그램을 실행시켜야 하기에 JRE (Java Runtime Environment)도 포함되어 있다.
JRE + 개발에 필요한 툴
소스 코드를 작성할 때 사용하는 Java 언어는 플랫폼에 독립적
Oracle Java 11부터 JRE는 따로 제공하지 않고 JDK만 제공한다.
JRE 자바 실행 환경(Java Runtime Environmnet)의 약자로 JVM과 Java 프로그램을 실행(동작) 시킬 때 필요한 라이브러리 API를 함께 묶어서 배포되는 패키지(Package)이다. 쉽게 말하자면 자바 애플리케이션을 실행할 수 있도록 구성된 배포판이라고 할 수 있다.
JRE에는 자바 클래스 라이브러리(Java Class Libraries)와 자바 클래스 로더(Java Class Loader), 자바 가상 머신(Java Virtual Machine)이 포함된다. 이외에도 자바 런타임 환경에서 사용하는 프로퍼티 세팅이나 리소스 파일(jar 파일)을 가지고 있다.
개발 관련 도구는 포함하지 않는다.(JDK에 존재) 그래서 JRE 만으로 Java 파일을 컴파일할 수 없다.
jar : Java 클래스 파일을 압축한 Java 아카이브 파일(. jar) 생성, 관리하는 압축 프로그램(zip이라 생각하면 된다.)
JVM + 라이브러리
Java 어플리케이션을 실행할 수 있도록 구성된 배포판
Java를 실행하기 위한 프로그램
컴퓨터를 뜯어보자.
키보드를 통해서 컴퓨터에 입력을 한다.
CPU를 통해 연산을 한다.
연산한 값들은 임시저장공간인 RAM에 저장하게 된다.
값들을 출력하는 것은 모니터에서 담당한다.
만약에, 값을 파일 형태로 관리하게 되면 하드디스크(HDD)에 저장하게 된다.
전류를 이용해서 데이터를 저장한다.
즉, 컴퓨터가 종료되면 데이터가 소멸된다. → 임시 저장
물리적인 장치에 스크래치로 기록을 한다.
컴퓨터가 종료되도 데이터가 유지된다. → 영구 저장
부팅 시 하드디스크의 데이터를 RAM에 적재하게 된다.
키보드, CPU, RAM, 하드디스크, 모니터 → 하드웨어
하드웨어를 제어하는 건 운영체제!
Windows, mac, 우분투(리눅스)
OS의 역할 및 중요성
사용자의 명령을 받아서 하드웨어를 직접 제어한다.
일반인 기준
사용자(키보드)
-(명령)→ OS
-(저장)→ 하드디스크
개발자 기준
개발자(Java)
-(명령)→ OS
-(저장)→ 하드디스크
여기서 자바를 통해 OS에게 명령을 내리려면 JDK(Java Development Kit)가 필요하다.
JDK 설치
(11 버전을 흔히 사용한다.)
windows 기준, JDK 환경변수 설정
명령 프롬프트(cmd)창 열기
jdk 폴더 > bin 폴더에 자바 파일이 있다. 해당 경로를 복사한다.
내 PC의 속성 > 고급 시스템 설정 > 환경 변수 >
시스템 변수에 Path 클릭 > 새로 만들기 클릭 후 경로 붙여넣기 > 확인
cmd 껐다가 켜서 java 명령어 치면 바로 실행 가능
자바 가상 머신의 줄임말로 자바 프로그램 등을 컴파일하여 만들어진 바이트 코드를 실행해주는 가상 머신
자바는 프로그램의 수정없이 어떠한 운영체제에서도 동일한 형태로 실행 가능
"한 번 쓰고 모든 곳에서 실행한다(Write Once, Run Anywhere, WORA)"
프로그램 메모리를 관리하고 최적화하는 것
JDK를 설치하면 자동으로 설치된다.