자바 가상 머신(영어: Java Virtual Machine, JVM)은 자바 바이트코드를 실행할 수 있는 주체이다. 일반적으로 인터프리터나 JIT 컴파일 방식으로 다른 컴퓨터 위에서 바이트코드를 실행할 수 있도록 구현되나 자바 프로세서처럼 하드웨어와 소프트웨어를 혼합해 구현하는 경우도 있다. (이론적으로는 100% 하드웨어 구현도 가능하나 비효율적이다) 자바 바이트코드는 플랫폼에 독립적이며 모든 자바 가상 머신은 자바 가상 머신 규격에 정의된 대로 자바 바이트코드를 실행한다. 따라서 표준 자바 API까지 동일한 동작을 하도록 구현한 상태에서는 이론적으로 모든 자바 프로그램은 CPU나 운영 체제의 종류와 무관하게 동일하게 동작할 것을 보장한다.
위키
JDK, JRE, JVM
출처: http://arabiannight.tistory.com/302
JDK : Java Development Kit
말 그대로 자바 개발을 위한 도구(Kit) 입니다. 자바 컴파일러(Javac), 자바가상머신(JVM), 각종 Java Libary 등을 포함하고 있어서 자바 개발을 위한 필수 도구(Kit) 입니다. JDK는 JRE를 포함하고 있습니다. (JDK 설치시 JRE도 설치됨)
JRE : Java Run Environment
역시 말 그대로 자바 실행 환경 이라고 보면 됩니다. Java 파일 실행을 위한 환경이며 JVM이 실행되도록 도와 주는 역할을 합니다. 만약 자바 개발이 필요없고 실행만을 원한다면 JRE만 설치하고 Java 파일을 실행하면 됩니다.
JVM : Java Virtual Machine
사용자가 Java 파일을 생성한 후 JDK의 컴파일을 거쳐 바이트코드(.class)가 되어 JVM을 거치면 컴퓨터가 사용할 수 있는 기계언어로 변경해주는 역할을 합니다.
자바 실행 흐름 : 사용자 Java 코드 생성 -> JDK 컴파일 (.class 파일 생성) -> JVM -> 실행
JVM이란?
출처 : http://romenz.tistory.com/2
Java Virtual Machine 를 줄인 것으로 자바를 실행하기 위한 기계라고 할 수 있다.
가상머신은 소프트웨어로 구현된 하드웨어를 뜻하는 넓은 의미의 용어로, 마찬가지로 가상컴퓨터라는 것은 컴퓨터 안에 소프트웨어로 구성된 가상의 컴퓨터 즉 컴퓨터 속에 컴퓨터라고 생각하면 된다.
자바로 작성된 것은 모두 JVM을 통해 실행되기 때문에, 자바를 코딩하고 실행하기 위해서는 컴퓨터기기에 반드시 JVM이 설치되어 있어야 한다.
일반 윈도우나 리눅스 응용프로그램들은 OS를 통해 하드웨어나 기타 제어를 하게 되는데 Java의 경우 가상머신(JVM)을 한 번 더 거치기 때문에 실행시 속도가 약간 느리다는 단점이 있다. 그러나 향상된 컴파일러 기술이 적용되어 속도의 격차는 현재도 줄어들고 있다.
JVM은 OS에 맞는 것이 필요하기 때문에 자신의 컴퓨터에 깔려있는 OS에 맞는 JVM을 설치해야 한다.