'Programing'에 해당되는 글 72건

  1. [Java] 실행
  2. [Java] Java SE, JDK, JRE

[Java] 실행


실행


1. 코드

우선 코드에 대해서 알아보자. 코드(code) 혹은 소스(source)는 프로그램이 어떤 모습이고, 어떻게 동작해야 하는가를 표현한 일종의 설계도라고 할 수 있다. 그런데 컴퓨터 프로그래밍에서의 설계도는 설계도 이상의 의미가 있다. 설계도를 컴퓨터에게 제출하는 순간 컴퓨터는 그 설계도에서 요구하는 프로그램을 마법처럼 만들어주기 때문이다. 그래서 프로그래밍에서의 설계도는 그 프로그램 자체라고도 할 수 있다. 코드는 자바의 문법에 맞게 만들어진 텍스트 파일이고, 이 파일의 확장자는 .java를 사용한다.


아래와 같이 파일을 만들어보자. 코드를 만드는 데는 복잡한 프로그램이 필요 없다. 가장 간단한 에디터인 메모장(win)이나 텍스트에디터(mac)로도 코드를 만들 수 있다. 적당한 디렉터리를 만들고 아래와 같은 내용을 가지고 있는 파일을 만들어보자. 파일의 이름은 Helloworld.java다.

class Helloworld {

    public static void main(String[] args){

        System.out.println("Hello world");

    }

}


2. 컴파일

그런데 코드 자체를 바로 실행할 수는 없다. 자바의 문법은 사람만이 이해할 수 있는 형식으로 되어 있기 때문이다. 이 코드를 컴퓨터가 이해할 수 있는 상태로 변환해주는 과정이 필요한데 이것을 컴파일(compile)이라고 하고, 이 작업을 하는 소프트웨어를 컴파일러(compiler)라고 부른다. 자바의 컴파일러는 javac 라는 이름을 가지고 있다. 만약 helloworld.java라는 코드를 컴파일한다면 아래와 같은 식으로 javac를 실행하면 된다. 

javac Helloworld.java


3. 실행

위 의 명령을 실행하면 같은 디렉터리에 helloworld.class라는 이름의 파일이 생성된다. 바로 이 파일이 컴파일된 파일이고, 쉽게 말해서 실행파일이라고 할 수 있다. 그런데 이 파일은 파일 이름만으로 실행 할 수 있는 것은 아니고, 컴파일된 파일을 실행시켜주는 프로그램을 이용해야 한다. 이 작업을 하는 프로그램을 런처(launcher)라고 하고 아래와 같이 실행한다.

java Helloworld


여러분이 해야 할 일은 런처를 이용해서 확장자가 class인 파일을 실행하는 것이다. 런처는 내부적으로 자바 가상 머신에서 우리가 만든 코드가 동작하도록 한다. 우리가 만든 프로그램은 최종적으로 자바 가상머신이라는 것을 통해서 동작하게 된다.

위와 같은 흐름을 통해서 자바 프로그램이 만들어지고 실행된다. 이를 통해서 알 수 있는 것은 코드만 있다고 프로그램이 만들어지는 것은 아니라는 것이다. 실제로 동작하는 프로그램은 자바이고, 여러분은 자바가 어떻게 동작할 것인가를 코드로 작성해서 자바에게 전달하면 자바는 그 코드에 적혀있는 데로 실행하게 되는 것이다. 아래 그림을 보자.

                                                                                 




'Programing > Java' 카테고리의 다른 글

[Java] 변수의 종류  (0) 2014.12.14
[Java] abstract  (0) 2014.12.11
[Java] 인터페이스의 이해  (0) 2014.12.06
[Java] 형변환  (0) 2014.12.02
[Java] Java SE, JDK, JRE  (0) 2014.12.02

[Java] Java SE, JDK, JRE

Java SE, JDK, JRE


- Java SE(Java Platform, Standard Edition)는 자바의 표준안이다. 자바라는 언어가 어떠한 문법적인 구성을 가졌는지와 같은 것들을 정의하고 있다. 이것은 구체적인 소프트웨어가 아니고 그 소프트웨어의 설계도라고 할 수 있다. 소프트웨어에서는 설계도라는 표현 대신에 명세서(spec, specification)이라는 말을 사용한다. 이 명세서에 따라서 Java가 만들어지게 된다. Java SE 7은 버전 7에 대한 명세서이다. 자바는 계속 진화하고 있는 기술이다. 이 명세서는 JCP(Java Community Process, http://jcp.org)라는 조직을 통해서 만들어진다.


- JDK(Java Development Kit)는 Java SE의 표준안에 따라서 만들어진 구체적인 소프트웨어다. Java 개발자라면 JDK를 다운받아서 설치해야 한다. 여기에는 Java 프로그램을 실행하면 Java 코드를 컴파일하는 컴파일러와 개발에 필요한 각종 도구 그리고 JRE가 포함되어 있다. 즉 개발자를 위한 자바 버전이다.


- JRE(Java Runtime Environment)는 자바가 실제로 동작하는 데 필요한 JVM, 라이브러리, 각종 파일들이 포함되어 있다. 자바로 만들어진 프로그램을 구동하려고 한다면 이것을 설치한다. 일반인을 위한 자바 버전이라고 할 수 있다.


- JVM(Java Virtual Machine) JVM은 자바가 실제도 구동하는 환경이다. 자바로 만들어진 소프트웨어는 JVM이라는 가상화된 환경에서 구동되고, 하드웨어나 운영체제에 따라서 달라질 수 있는 호환성의 문제는 운영체제 버전에 따라서 만들어진 JVM이 알아서 해결한다. 즉 하나의 자바 프로그램을 만들면 어떤 환경에서도 실행할 수 있는 것이 바로 JVM의 역할이라고 할 수 있다.


JVM은 자바를 실행하기 위한 가상 기계라고 할 수 있다. 컴퓨터(머신)를 사용해서 자바를 실행하기 위한 가상 컴퓨터라고 이해하면 좋을 것이다.

가상 기계는 소프트웨어로 구현된 하드웨어를 뜻하는 넓은 의미의 용어이며, 컴퓨터의 성능이 향상됨에 따라 점점 더 많은 하드웨어들이 소프트웨어화되어 컴퓨터 속으로 들어오고 있다.

그 예로는 TV와 비디로를 스프트웨어한 윈도우 미디어 플레이어던가, 오디오 시스템을 소프트웨어화한 윈엠프 등이 있다.

이와 마찬가지로 '가상 컴퓨터'는 실제 컴퓨터(하드웨어)가 아닌 스프트웨어로 구현된 컴퓨터라는 뜻으로 컴퓨터 속의 컴퓨터라고 생각하면 된다.


자바로 작성된 어플리케이션은 모두 이 가상 컴퓨터에서만 실행되기 때문에, 자바 어플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다.

이 관계를 그림으로 나타내면 아래와 같다.


cp.)

자바로 프로그래밍을 하기 위해서는 먼저 JDK를 설치해야 한다. JDK를 설치하면, 자바가상머신과 자바클래스 라이브러리외에 자바를 개발하는데 필요한 프로그램들이 설치된다.


(1) JDK의 bin 디렉터리의 주요 파일

1) javac.exe: 자바 컴파일러, 자바소스코드를 바이트코드로 컴파일한다.

c:\jdk1.6\work\javac Hello.java


2) java.exe: 자바 인터프리터, 컴파일러가 생성한 바이트코드를 해석하고 실행한다.

c:\jdk1.6\work\java Hello


3) javap.exe: 역어셈플러, 컴파일된 클래스파일을 원래의 소스로 변환한다.

c:\jdk1.6\javap Hello > Hello.java


vo.) 바이트코드

JVM이 이해할 수 있는 기계어, JVM은 바이트코드를 다시 해당 OS의 기계어로 변환되어 OS로 전달한다.


cf.) jar.exe: 압축프로그램, 클래스파일과 프로그램과 프로그램의 실행에 관련된 파일을 하나의 jar파일(.jar)로 압축하거나 압축해제한다.


cf.) JDK와 JRE

JDK: 자바개발도구

JRE: 자바실행환경


JDK: JRE + 개발에 필요한 실행파일(javac.exe등)

JRE: JVM+클래스라이브러리


프롬프트 창에서 자바 파일 실행

Hello.java 작성 ---> javac.exe --->Hello.class 생성 ---> java.exe ---> 실행



'Programing > Java' 카테고리의 다른 글

[Java] 변수의 종류  (0) 2014.12.14
[Java] abstract  (0) 2014.12.11
[Java] 인터페이스의 이해  (0) 2014.12.06
[Java] 형변환  (0) 2014.12.02
[Java] 실행  (0) 2014.12.02