Java

실행

코드

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

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

class Helloworld {
    public static void main(String[] args){
		System.out.println("Hello world");
	}
}

컴파일

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

javac Helloworld.java

실행

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

java Helloworld

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

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

운영체제 별 실행방법

운영체제에 따라서 자바를 실행하는 방법이 조금씩 다르다. 자신의 운영체제에 맞는 수업을 찾아서 구체적인 실행 방법을 알아보자.

윈도우에서 자바 실행

http://opentutorials.org/module/516/5563

OSX에서 자바 실행

http://opentutorials.org/module/516/5564

리눅스에서 자바 실행

http://opentutorials.org/module/516/5565

댓글

댓글 본문
작성자
비밀번호
  1. 김문규
    감사합니다.
  2. pjvfa
    C:\Program Files\Java>javac Helloworld.java
    javac: file not found: Helloworld.java
    Usage: javac <options> <source files>
    use -help for a list of possible options

    C:\Program Files\Java>dir/w
    C 드라이브의 볼륨에는 이름이 없습니다.
    볼륨 일련 번호: 1EA8-1441

    C:\Program Files\Java 디렉터리

    [.] [..] Helloworld.java.txt
    1개 파일 117 바이트
    2개 디렉터리 26,230,005,760 바이트 남음

    저는 java class 파일이 생성되지 않는데 왜 그런 걸까요ㅠㅠ
  3. kyk0511
    감사합니다 ^^
  4. K_SSUN
    저도 Yoon님과 같은 오류가 떠서 구글링해서 해결했습니다
    혹시나 다른 분들도 찾아보실까봐 주소 올립니다:D
    https://programmers.co.kr......737
    대화보기
    • yoon88
      완료
    • 김덕배
      path 설정 제대로 안해서 그럴걸요
      대화보기
      • 그 자바 소스를 컴파일해서 class 까지는 만들어지는데 class를 java Helloworld 실행하면 이런오류가떠요.. 뭐가문제인걸까요 ㅠㅠ.. 환경변수도 다설정했습니다 ㅠ..

        class Helloworld {
        public static void main(String[] args){
        System.out.println("Hello world");
        }
        }

        C:\Users\yoon\Dropbox\java_tutorial>javac Helloworld.java

        C:\Users\yoon\Dropbox\java_tutorial>java Helloworld
        오류: 기본 클래스 Helloworld을(를) 찾거나 로드할 수 없습니다.
      • J_Project
        감사합니다
      • 170308
        감사합니다.
      • 이경준
        잘 보고 갑니다! 출석체크!
      • Hwang Daehyun
        아..역시 바로 아셨었군요 ㅋㅋㅋ 저랑 같으시네요 ㅋㅋ 저보다 9일전에 시작하신것 같은데,.. 지금은...어디 수업듣고 계시나요?? ..전 오늘 두개 정도씩 하루 에 한번 공부하려고요,,,
        대화보기
        • Hwang Daehyun
          지금은 아마 해결을 하셨을 것 같은데요, 혹시나 해서 댓글을 남겨 드립니다, 저도 같은 걸 겪다 바로 해결 했거든요...ㅋㅋ 아마 고수들이 보면 우스울것 같지만,,,그래도 전 방금 전까지만해도 ,,,너무 진지했었기에 남겨 보아요,,.. 그건 hello world 를 world hello 로 변경 한 후이 컴파일 이라는 과정을 안해 주셔서 그래요 , javac Helloworld.java 요걸 다시 해주셔서 class 라는 파일은 새로 만들어 주셔야 하는 거더라구요, 원본이 바뀌었으니 새로 다른 것들도 변경 해줘야 하는 거겠죠, 암튼,,,저도 오늘 부터 공부를 시작했는데요~ 함께 알아가며 공부할 수 있으면 좋겠네요^^ 열공 ~ 합시다!
          대화보기
          • 어렵군요
            아 방금 되었습니다.. 근데 이 Hello world에서 world Hello 라고 바꾸는 것처럼 문자를 바꿀때 그 메모장을 계속 저장을 하고 컴파일 해야 하나요?? 저는 그래야만 바뀌네요...
          • 어렵군요ㅠ
            저 근데 Hello world를 world Hello라고 바꾸는 과정에서 안바뀌어지고 계속 Hello world라고만 뜨네요ㅠ

            혹시 왜 그런지 알 수 있을까요??ㅠ
          • 2016.12.09 OK~
          • Hide on Bongji
            영롱하군요
          • 감사해요~
          • JustStudy
            고맙습니다
          • 오빠는다르다
            감사합니다!!!
          • Su-Jeong Yoo
            잘보고 갑니다.
          • psgg
            코딩을 처음 접하는 사람인데 내용도좋은데 중간에 영상 설명하시는 분이 자신이 만든 자바파일 위치가 f드라이브라하시면서 f뭐시기(?)를 누르시고 속성들어가서 체크하신뒤에 복사해서 오른쪽 마우스누르고 엔터 누르니까
            다음단게로 넘어 가시던데 보고 따라하던 도중에 제 자바 파일은 c 드라이브에 잇어서 올리신분 이하신거에서
            f를 c로만 바꿔서 그대로 햇는데 않되더군요....ㅠ 가능하시다면 답변 부탁드립니다,
          • 허니버터
            잘보고 갑니다
          • 행복생산
            좋은 내용 잘 보고있습니다.
          • egoing
            cd ~/documents/java_tutorials/
            를 아래와 같이 해야 하지 않을까요? ^^
            cd ~/Documents/java_tutorials/
          • 상상
            도큐멘트 -> java_tutorials -> helloworld,java 파일 작업 다 했는데...

            터미널에서 cd 변경하려고 하는데 왜 안되는지 이해가 안되네요. ㅠ.ㅠ

            soui-MacBook-Pro:~ sangsang$ cd ~/documents/java_tutorials/

            -bash: cd: /Users/sangsang/documents/java_tutorials/: No such file or directory
          버전 관리
          egoing
          현재 버전
          선택 버전
          graphittie 자세히 보기