이전글
자바 첫 번째 프로그래밍
개발자의 길을 걷는다면 어떤 언어를 배울때 개발환경 설정 이후 가장 처음 사용하는 마법의 주문이 있습니다. 바로 "Hello Wrold" 입니다. 이런 관례 혹은 마법의 주문이 어떻게 해서 생겨난 것인지는 모르겠으나 저의 경우는 흥미롭다고 생각되는 부분입니다.
이 글에서는 자바 언어로 Hello World를 출력하는 프로그램을 간단하게 작성해 볼 것입니다.
진부하고 재미 없더라도 순조롭게 이해하면서 이 글을 따라오기 위해서는 이전글들을 읽고 와주시기 바랍니다.
Class 작성하기
자바 언어는 객체지향 언어이며, 객체를 만들기 위해서는 클래스가 필요하므로 자바 프로그램의 모든 것은 클래스 단위로 작성 됩니다.
이전글에서 설명했지만 자바는 우리가 작성한 소스파일(.java)을 컴파일러를 통해 .class 확장자를 가진 바이트 코드로 컴파일하고, 이 바이트코드를 JVM이라는 자바 가상 머신을 통해 실행하는 하이브리드 구조로 동작합니다.
여기서는 원본 소스인 .java 파일을 작성해 보도록 하겠습니다.
1. 먼저 메모장을 열어주세요.
(컴파일러의 역할은 Java 언어 문법에 맞게 작성된 단순 텍스트를 번역해주는 것이므로 자바 언어로 코딩을 할 때에는 어떤 에디터를 사용해도 상관 없습니다.)
Windows 시작 버튼 + R 을 누른후 notepad를 입력해 실행하거나, 시작 메뉴에서 메모장을 클릭해 실행합니다.
2. 메모장이 실행 되었다면 다음과 같이 따라서 코딩합니다.
규칙은 다음 이어지는 글에서 포스팅 합니다.
코드를 직접 입력 해보는 것이 도움이 되지만 편의를 위해 남겨놓습니다.
1
2
3
4
5 |
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
} |
cs |
3. 작성된 소스를 Hello.java 라는 이름으로 C 드라이브 바로 하위에 저장합니다.
경로는 어디든 상관 없지만 찾아가기 쉬운 경로에 저장하는 것이 편합니다.
파일 형식을 모든 파일로 바꿔주세요.
혹시라도 다음과 같이 권한 문제가 발생할 수 있습니다.
이런 경우 D 드라이브 하위에 저장하신 후 D 드라이브 기준으로 따라하셔도 상관 없고 메모장을 관리자 권한으로 실행하여 코드를 작성하셔도 됩니다. 관리자 권한으로 메모장을 실행하는 방법은 메모장 실행시 마우스 우클릭 하여 관리자 권한으로 실행을 누르시면 됩니다.
4. Windows 시작 버튼 + R을 눌러 cmd 를 실행하거나, 시작 메뉴에서 Command를 실행합니다.
- 명령어로 컴파일러를 실행하여 소스를 컴파일 하기 위함입니다.
5.명령 프롬프트가 실행 되었으면 cd c:\ 를 입력후 엔터를 눌러 C드라이브 하위로 이동합니다.
6. 다음 명령어를 통해 작성한 소스를 컴파일 합니다.
javac Hello.java |
cs |
컴파일이 제대로 된 경우 아무런 오류 없이 컴파일이 완료됩니다.
또한 다음과 같이 컴파일된 Hello.class 파일이 생성됩니다.
만약 다음과 같은 오류가 발생한다면, 메모장과 마찬가지로 명령 프롬프르를 관리자 권한으로 실행합니다.
혹은 위에서 메모장으로 소스를 작성할 때 C드라이브 하위가 아닌 다른 경로에 저장후 해당 경로를 기준으로 진행하셔도 됩니다.
Hello.java:1: error: error while writing Hello: Hello.class (액세스가 거부되었습니다) |
cs |
마우스 우클릭 후 관리자 권한으로 실행
이외의 컴파일 오류 및 갖가지 종류의 Exception이 발생한 경우
자바는 컴파일 과정에서 문법이 맞지 않는 경우에는 Syntax 오류가 발생하며, 잘못된 메서드를 사용하는 경우 예외(Exception)이 발생하게 됩니다. 따라서 위 코드를 한글자 한글자 안틀리고 잘 따라했는지 다시 점검합니다. 처음 자바를 배울 때 자주 하는 실수는 크게 다음의 몇 가지가 있습니다.
A. 자바는 대소문자를 가리므로 대소문자를 잘 못 사용 한 경우 오류가 발생합니다.
다음은 작성한 코드인데 굵게 표시된 부분은 대문자여야 하며 나머지는 소문자로 작성합니다. (Hellow World 제외)
1
2
3
4
5 |
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
} |
cs |
B. 클래스명과 소스 파일명이 똑같아야 합니다.
소스에서 public class 다음에 오는 클래스명과 저장한 파일명이 똑같이 각각 Hello와 Hello.java 인지 확인합니다.
C. 메서드 사용시 뒤에 세미콜론을 붙여야 합니다.
1 |
System.out.println("Hello World"); |
cs |
D. 괄호의 수와 여는 괄호 닫는 괄호의 짝이 잘 맞는지 확인합니다.
크게는 이정도이며, 계속 컴파일이 되지 않는다면 위의 코드를 복사해서 사용합니다.
7. 이번엔 컴파일된 바이트코드인 Hello.class 를 JVM을 통해 실행해보도록 하겠습니다.
실질적으로 방금 작성한 자바 프로그램을 실행하는 것입니다.
명령 프롬프트를 통해 Hello.class 파일이 있는 경로에서 다음을 입력합니다. 이때 확장자는 입력하지 않습니다.
java Hello |
cs |
짠 하고 Hello World 라고 출력되는 것을 볼 수 있습니다.
언제나 그렇듯 처음에는 순탄치 않습니다.
만약 다음과 같은 오류가 발생한다면 셋팅시 설정했던 환경변수 설정을 다시 한번 확인합니다.
오류: 기본 클래스 Hello.을(를) 찾거나 로드할 수 없습니다. |
cs |
특히 CLASSPATH 설정시 끝에 ;. 을 추가해줍니다.
이후 명령 프롬프트를 꼭 껐다가 다시 실행하여 테스트 해봅니다.
다음글
'자바[Java]' 카테고리의 다른 글
[JAVA] Java 명령행 매개변수(args 배열)값 넘기면서 실행하기 (String[] args에 대하여) (0) | 2018.06.28 |
---|---|
[JAVA] Hello World 프로그램 분석 (0) | 2018.05.10 |
[JAVA] 자바 언어의 특징 (0) | 2018.02.15 |
[JAVA] 사용자 정의 예외 (0) | 2017.12.29 |
[JAVA] 자바 예외를 발생시키는 방법 - throw (0) | 2017.12.29 |