1. 학습을 위한 준비
JAVA를 사용해서 프로그램을 개발하기 위해서는 "Java Development Kit"("JDK"라 부른다) 라는 것이 필요하다.
JDK는 2013.4월 현재 웹사이트 www.oracle.com 에서 7.0버전을 무료로 다운 받을 수 있다.
2. 프로그램의 개념과 실행
사람과 사람이 대화하기 위한 수단으로 많은 언어가 존재하듯 컴퓨터라는 기계에서 실행가능한 프로그램을 만드는 언어 역시 여러가지가 있으며, 사람의 언어와 마찬가지로 각각의 사용 문법(규칙)이 다르다.
컴퓨터에서 실행되는 프로그램을 만든다는 것은 생각보다 간단하다. 언어를 선택하고 선택한 언어가 정해놓은 규칙(문법)에 맞게 코딩하고 다시 이 내용을 컴퓨터라 불리우는 기계(시스템)들이 인식할수 있는 언어 (기계어 : 0, 1로만 만들어진 언어)로 변경해주면 된다. (뭐 언어마다 조금씩 다르겠지만 당장 중요한 내용이 아니니 나중에 다시 이야기하자)
여러분은 "자바"라는 언어를 사용하여 프로그램을 만들고 싶다면 자바 문법에 맞게 코딩하고 javac.exe라는 프로그램을 사용하여 기계어로 변경하고 그 기계어를 java.exe이라는 프로그램으로 실행하면 된다.
자바문법은 앞으로 학습할 것이고, 코딩하여 저장할때는 확장자를 .java로 해야만 javac.exe라는 프로그램(컴파일러)을 사용하여 기계어로 변경이 가능하며, 기계어로 변경된 파일(프로그램)의 확장자는 .class확장자를 가지며 이것이 java.exe로 실행가능한 파일이다. (자바는 실행파일의 확장자가 .exe가 아니고 .class이다. 자세한건 다시 뒤에서 이야기 하자)
3. 화면으로 문자 출력하는 소스파일 만들기
콘솔(도스창)화면에 문자를 출력하는 프로그램이다. 메모장 같은 텍스트 에디터등을 사용하여 다음과 같이 작성한다.
JAVA언어는 대분자와 소문자를 구별한다.(A 와 a는 다른 문자로 인식한다) 주의해서 작성하자.
class First { public static void main(String[] args) { System.out.println("hello java"); } }
우리는 위와 같이 프로그램을 정해진 규칙(문법) 문자를 조합해서 만들고 이렇게 만들어진 결과물을 소스파일(source file) 이라 부른다. 소스파일은 클래스 이름과 동일하게(예제의 경우 First) 하고 확장자 .java를 붙여 만든다.(예제파일의 이름은First.java가 된다)
소스파일은 우리가 실행할 수 있는 형태는 아니다. 소스파일을 실행가능한 프로그램으로 만들기 위해서는 다음과 같은 과정을 거쳐야 한다.
소스파일은 자바컴파일러(javac.exe)로 통해서 바이트코드(*.class)를 생성한다. 그런 다음에 JVM(Java Virtual Machine)인터프리트를 통해서 이 클래스파일을 실행시키면 JVM(Java Virtual Machine)은 자바 클래스 라이브러리(Java API)와 결합하여 프로그램을 실행시킨다.
4. 소스파일(소스코드)을 컴파일하고 실행하기
컴파일(compile)이란 실행할 수 없는 소스파일을 실행가능한 프로그램 형식으로 변환하는 작업이다. 위의 예제는 다음과 같이 커맨드창(도스창, 쉘창)에서 컴파일 한다.
javac First.java
컴파일이 완료되면(만약 컴파일도중 에러가 발생하면 메세지를 출력하고 컴파일은 중단된다) First.java파일과 같은 폴더에 First.class파일이 생성된다. 컴파일이 성공하면 다음과 같은 명령으로 실행하면 모니터 콘솔창에 "hello java"라는 문자열이 출력된다.
java First
※ 컴퓨터(운영체제)에 JDK를 설치하고 PATH를 지정하지 않으면 "Javac.exe or java.exe라는 명령어가 없다"는 메세지를 보여주며 컴파일이나 실행이 안될수도 있다. 이 경우 JDK설치폴더(디렉토리)아래 bin폴더(디렉토리)를 운영체제에 PATH를 지정하여야 하는데 PATH설정 방법은 운영체제들 마다 다르니 각자의 운영체제에 따라 PATH를 지정하자.
'Java' 카테고리의 다른 글
jdk 1.6 다운로드 링크 (0) | 2014.04.11 |
---|---|
RSS XML DOM 파싱 (0) | 2013.11.13 |
Java? 객체지향언어? (0) | 2013.06.02 |
표현식과 연산자 (0) | 2013.05.28 |
JVM 메모리구조 (3) | 2013.05.28 |