궁금해서 검색해봤는데 제대로 이해하려면
JRE, JDK, JVM을 알아야 할 필요성이 느껴졌다
요약하자면
JDK는 JRE를 포함하고 있으며 읽기/쓰기이고, JRE는 읽기전용이다!
더 쉽게 얘기하면
JAVA로 만들어진 프로그램을 실행만 시킬거면 JRE만 설치하면 되고, JAVA 개발자라면 JDK를 설치
더 깊게 들어가보자
JVM을 사용하기 위한 라이브러리가 JRE이고 Java 프로그램을 실행하기 위해 사용되는 것이 JRE이다.
JDK는 JRE를 포함하고 있으며 컴파일러와 디버거 등 개발자 툴들이 포함된 것이다.
같은 말을 여러번 보니까 이해가 되는 것 같쥬?
JVM(Java Virtual Machine)
- 자바 소스코드로부터 만들어지는 자바 바이너리 파일(.class)을 실행할 수 있음
- 각 운영체제별 JVM은 자바측에서 개발하여 배포하므로 프로그래머는 운영체제에 관계 없이 프로그램을 개발할 수 있음
- 컴파일 된 바이너리 코드는 어떤 JVM에서도 동작시킬 수 있음
∴ 운영체제에 의존하지 않는 인터페이스를 제공하기 때문에 자바 가상머신이라고도 부르며, WORA(Write Once Run Anywhere)를 만족함
JRE (Java Runtime Environment)
- 컴파일 된 자바 프로그램을 실행시켜주는 환경을 구성해주는 도구(개발 도구는 포함되지 않음)
- JRE = JVM + Class Libraries(Java package class(util, math, lang, awt, swing 등) + Runtime Library)
JDK (Java Development Kit)
- Java 개발시 필요한 툴을 제공하는 도구 모음
- 오라클에서 제공하는 JDK와 오픈소스로 개발된 OpenJDK가 있으나 일반적으로 오라클 JDK를 사용함
- 플랫폼별 SW이므로 운영체제별로 설치 프로그램이 다름
- 개발을 하려면 실행도 당연히 시켜야 하기 때문에 JDK안에는 JRE가 포함되어 있음
그래서 java랑 javac 명령어 차이가 뭐냐구요??????????????
검색해보니 생각보다 자료가 별로 없다
나같은 생각을 하는 사람이 적었나?
https://okky.kr/article/636390
OKKY | java -version과 javac -version 명령어의 차이?
java -version 명령어를 실행하면 아래와 같이 출력되고 java version 1.8.0_101 Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode) javac -version
okky.kr
이러한 글이 있었는데 여기 내용으로는 부족해서 여기저기 더 찾아보고
정리해서 작성하였다ㅏ
java
Java의 버전 확인을 위한 명령어, javac로 컴파일 된 class파일을 실행(JRE)
javac
Java 컴파일러의 버전 확인을 위한 명령어, *.java파일을 *.class파일로 컴파일해주는 컴파일러(JDK)
javac는 개발시에만 필요한 것이여서 환경변수를 별도로 설정해야 한다고 한다!
전에 포스팅에서 환경변수를 설정해 주었던 이유는 저아이 때문..
https://okky.kr/article/364116?note=1151613
OKKY | JRE, JDK 문제가 해결 되지 않아 질문드립니다..
원래 제 PC에는 1.7 버전의 java가 설치되어 있었고 (jdk-7u79-windows-x64) 프로그램 실행 시 보다 상위 버전의 java가 필요하다는 에러가 나서 java 1.8 버전을 다운 받아 설치 한 뒤 (jdk-8u111-windows-x64) 제대
okky.kr
검색하다보니 java와 javac의 버전이 달라 문제가 생기는 경우가 있던데
이는 oracle이 java의 환경변수를 잡아주기 때문이라고 한다.
해결 방법은 !!
환경변수(시스템)에서 java의 환경변수 순서를 oracle보다 위에 작성하면 된다
시스템 변수의 Path를 선택하고 편집을 누른다 !
나는 이런 문제가 있던 적이 없어서 현재 이런 상태인데
이제 여기에 Java의 환경변수를 입력해준다!
그리고나서 JAVA 환경변수를 Oracle 위로 이동시킨다!
이렇게 하면 java와 javac의 버전이 잘 맞는다고 한다!
블로그 포스팅하면서 나도 공부를 열심히 한다...
'JAVA > 설치 및 설정' 카테고리의 다른 글
Eclipse 한글 깨짐 현상 (0) | 2021.08.10 |
---|---|
웹프로젝트 실행 시 chrome으로 열기 (0) | 2021.08.09 |
annotation 오류 및 이클립스 Java 버전 맞추기 (0) | 2021.08.09 |
환경변수 설정하기 (0) | 2021.08.06 |
JAVA 설치 시 고려해야 할 것들? (0) | 2021.08.04 |