slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
플랫폼 (Platform) • 자바 가상 기계 (Java Virtual Machine ; JVM) : 자바 바이트 코드를 기계로 사용하는 컴퓨터 PowerPoint Presentation
Download Presentation
플랫폼 (Platform) • 자바 가상 기계 (Java Virtual Machine ; JVM) : 자바 바이트 코드를 기계로 사용하는 컴퓨터

Loading in 2 Seconds...

play fullscreen
1 / 43

플랫폼 (Platform) • 자바 가상 기계 (Java Virtual Machine ; JVM) : 자바 바이트 코드를 기계로 사용하는 컴퓨터 - PowerPoint PPT Presentation


  • 112 Views
  • Uploaded on

JAVA 개발 도구. 플랫폼 (Platform) • 자바 가상 기계 (Java Virtual Machine ; JVM) : 자바 바이트 코드를 기계로 사용하는 컴퓨터 - JDK 에 포함되어 있는 인터프리터 - Appletviewer - WWW 검색기 ( 넷스케이프 , 익스플로러 , 핫자바 등 ) • 자바 API(Application Programming Interface) : 자바 개발 환경에서 제공되는 거대한 패키지.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '플랫폼 (Platform) • 자바 가상 기계 (Java Virtual Machine ; JVM) : 자바 바이트 코드를 기계로 사용하는 컴퓨터' - leanna


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

JAVA 개발 도구

플랫폼(Platform)

•자바 가상 기계(Java Virtual Machine ; JVM)

: 자바 바이트 코드를 기계로 사용하는 컴퓨터

- JDK에 포함되어 있는 인터프리터

- Appletviewer

- WWW 검색기(넷스케이프, 익스플로러, 핫자바 등)

•자바 API(Application Programming Interface)

: 자바 개발 환경에서 제공되는 거대한 패키지

slide2

JDK에 포함되어 있는 각종 개발도구와 그 사용법§자바 컴파일러(javac): .java .class사용 예)javac HelloWorldApp.java javac HelloWorld.java

java java helloworldapp
§자바 인터프리터(java):명령행 인자로 주어진 클래스 파일에 있는 바이트코드를 해석하여 실행. 사용 예) java HelloWorldApp이때, 확장자는 생략
javadoc class html javadoc helloworldapp
§도큐먼트 생성 도구(javadoc):명령행 인자로 받은 확장자가 ‘.class’인 파일에 대해 패키지, 계층 구조, 그리고 도구 등을 HTML 문서로 만들어 주는 역할을 함. javadoc HelloWorldApp
javah c stub javah helloworldapp
§헤더 파일 생성 도구(javah):명령행 인자로 클래스 이름을 받아, 해당 애플리케이션을 위한 C 스터브(stub) 헤더 파일을 생성해 줌. javah HelloWorldApp
slide6

§역어셈블러(javap):클래스 파일을 자바 소스 코드로 역어셈블 해 그 결과를 표준 출력(콘솔)으로 출력해 줌. 따라서, 역어셈블 되어 생성된 자바 소스 코드를 파일로 저장하고 싶을 경우에는 다음과 같이 표준 출력을 파일로 재지정(redirection)해 주면 됨.javap -c HelloWorldApp > HelloWorldApp.txt

slide7

§디버거(jdb):명령행 인자로 클래스 이름을 받아 디버깅을 시도 함. 디버거 프롬프트에서 help를 입력하면 사용가능 한 명령어들을 알 수 있음. 자바 디버거를 제대로 사용하려면 자바 프로그램을 컴파일할 때 -g 옵션으로 컴파일 해야 함. javac -g HelloWorldApp.java jdb HelloWorldApp

slide8

§애플릿을 보여주는 도구(appletviewer):- 명령행 인자로 URL 또는 HTML 페이지 파일을 받아 HTML 페이지에 포함되어 있는 애플릿을 실행시켜 줌. - 자바 애플릿을 실행1) 자바 애플릿 원시 파일인 ‘.java’파일을 생성. 2) 자바 컴파일러를 이용하여 ‘.class’파일을 만듬. 3) 이 파일을 HTML 페이지 내에 삽입시켜 실행하 기 위한 ‘.html’파일을 만듬. 4) 애플릿을 보기 위해서는 다음과 같이 자바 애플 릿뷰어를 실행시켜 확인 할 수 있다. appletviewer HelloWorld.html

jdk http java sun com products jdk 1 1 docs tooldocs
JDK에 포함되어 제공되는 도구들에 대하여 좀 더 자세히 알고 싶으면 다음에 나오는 사이트를 참조하시기 바람. http://java.sun.com/products/jdk/1.1/docs /tooldocs/
slide10

Java 프로그램 시작

  • 순서
    • 프로그램 목적 파악, 프로그램 작성
    • 컴파일, 실행
  • Project : HelloWorld
    • “HelloWorld!”를 화면에 프린트
    • 텍스트 에디터를 이용하여 다음을 작성

/*

This is a sample test

*/

class HelloWorld {

public static void main(String args[]) {

System.out.println(" HelloWorld!");

}

}

slide11
적당한 파일명으로 저장
      • 반드시 클래스와 동일한 이름으로 할 필요는 없으나 유지보수를 위하여 주 클래스 이름으로 파일명을 생성
      • 대소문자 구분 없음
      • 확장자는 반드시 : *.java
      • HelloWorld.java
  • 컴파일(compile)
    • javac HelloWorld.java
      • HelloWorld.class 가 생성됨
      • 소스에 쓰인 클래스이름으로 생성
      • 클래스의 이름은 대소문자 구분
  • 실행
    • java HelloWorld
      • 정확한 클래스 이름을 부여
      • 대소문자 구분
slide12

1 class HelloWorld { 2 3 // 주석 부분 4 public static void main (String args[]) { 5 6 String msg = "World!"; 7 8 System.out.print("Hello "); 9 System.out.println(msg); 10 } 11 }

소스 분석

1. 에디터를 이용해서 HelloWorld.java 라는 파일을 작성한다.

HelloWorld.java 파일

2. javac라는 자바 컴파일러를 이용해서 HelloWorld.java 파일을 컴파일한다.

% javac HelloWorld.java

slide13

3. javac를 이용하여 컴파일하면 HelloWorld.class라는 파일이 생성된다.

생성된 HelloWorld.class 파일은 java라는 자바 인터프리터에 의해 실행된다.

% java HelloWorld

HelloWorld.java 파일 설명

자바 프로그램의 확장자는 .java이고 실행 파일의 확장자는 .class이다.

slide14

class HelloWorld {

  • 자바는 객체지향 언어이다. 따라서 자바에서는 모든 것이 클래스 되어 있다.
  • 1번 문장은 HelloWorld라는 클래스를 정의하는 것이다.
  • javac를 이용하여 컴파일하면 각 클래스는 .class는
  • 확장자를 갖는 파일로 저장된다.
slide15

3 // 주석 부분

/* */ : C 스타일 주석, 여러 줄에 걸쳐서

사용할 수 있다.

// : C++ 스타일 주석, 한줄을 주석으로

사용할 때 편리하다.

/* **/ : javadoc을 이용하여 도큐먼트할 때

사용된다.

4 public static void main (String args[]){

public : 함수의 억세스 퍼미션을 의미

static : 정적

void : 함수의 리턴 타입

main : 함수 이름. main은 프로그램의

시작 함수이다.

String args[] : main의 아규먼트, 스트링 배열

slide16

String msg = "World";

  • String : 문자열을 나타내는 데이타 타입 클래
  • msg = "World!" : msg 라는 변수에 World라는 문자열
  • 을 넣는다.
  • ; : 모든 문장은 ;로 끝난다.
  • 8 System.out.print("Hello ");
  • System : 자바가 제공하는 클래스 이름
  • System.out.print : System 클래스의 out 멤버필드의
  • print라는 메소드.
  • 화면에 문자를 출력하는데 사용된다.
  • "Hello " : Hello라는 문자열
slide17

System.out.println(msg);

  • println : print line이라는 뜻이다. 문자열을 출력하고 라인을 바꾼다.
  • msg : String 타입의 변수
  • 10 }
  • main함수의 끝을 의미한다. 모든 함수와 블락은 { }안에 들어간다.
  • 11 }
  • C 나 C++와는 다르게 클래스의 모든 메소드는 클래스안에 정의되어 있어야 한다. 이것은 PASCAL과 유사하다.
java applet
Java Applet 프로그램
  • 소스 프로그램 작성
    • 반드시 클래스 이름과 동일한 소스파일명으로 저장
      • 대소문자 구분 : WelcomeApplet.java
      • javac WelcomeApplet.java
      • WelcomeApplet.class 생성

import java.awt.Graphics;

import java.applet.Applet;

public class WelcomeApplet extends Applet {

public void paint(Graphics g) {

g.drawString(“Welcome to Hoseo!”, 5, 25);

}

}

slide19

<HTML>

<HEAD>

<TITLE> This is a first sample applet program </TITLE>

</HEAD>

<P>

Our Fisrt Applet Program

<APPLET CODE=“WelcomeApplet.class” WIDTH=500 HEIGHT=100>

</APPLET>

</HTML>

  • HTML 파일 작성
    • .html 확장자로 저장
  • 실행
    • appletviewer welcome.html
    • 일반 브라우저 이용
slide20

1 import java.awt.*; 2 import java.applet.*; 3 4 public class Hello extends Applet { 5 private String Greeting[] = { 6 "Hello, world!" 7 }; 8 9 public void paint(Graphics g) { 10 g.drawString(Greeting[0], 25, 25); 11 } 12 }

자바 애플릿 소스 분석

1. 에디터를 이용하여 Hello.java 파일을 작성한다.

slide21

1 <html><head><title>Hello</title></head> 2 <body> 3 <applet code=Hello.class width=250 height=250> 4 </applet> 5 </body> 6 </html>

2. 에디터를 이용해서 Hello.html파일을 작성한다.

3. javac를 이용해서 Hello.java를 컴파일한다.

% javac Hello.java

slide22

% appletviewer Hello.html

4. appletviewer나 넷스케이프를 이용해서 Hello.html 파일을 본다.

slide23

Hello.java 파일 설명

애플릿(applet) : 웹브라우저 상에서 실행되는 프로그램(Hello.java)

appletviewer 나 넷스케이프를 이용해서 실행시킨다.

어플리케이션 : 일반적인 응용 프로그램(HelloWorld.java)

java라는 인터프리터를 이용해서 실행시킨다.

slide24

import java.awt.*;

  • import : C 언어의 #include 에 해당된다.
  • java.awt : 자바언어가 제공하는 패키지 이름이다.
  • 패키지란 비슷한 종류의 클래스를 모아서 만든 클래스들의 모임이다.
  • java.awt 패키지는 GUI나 그래픽에 관련된 클래스들의 모임이다.
  • java.awt.* : java.awt 패키지에 있는 모든 클래스를 의미한다.
slide25

import java.applet.*; java.applet : 애플릿 프로그램을 작성하기 위해서 만든 에플릿 패키지이다.

  • java.applet.* : 애플릿 패키지의 모든 클래스.
  • 4 public class Hello extends Applet {
  • public : 클래스의 억세스 퍼미션
  • class Hello : Hello 라는 클래스를 선언한다.
  • extends : Applet 클래스에서 상속받아 Hello 라는 클래스를 만들겠다는 의미이다.
  • Applet : java.applet패키지에 있는 Applet 클래스
slide26

private String Greeting[] = {

  • private : 클래스 멤버 필드의 억세스 퍼미션
  • String Greeting[] : Hello 클래스의 멤베 필드. 타입은 문자열 배열
  • = { : 배열에 값을 초기화하기 위해서 사용되었다.
  • 6 "Hello, world"
  • Greeting[0]에 Hello, world라는 문자열로 초기화 했다.
slide27

7 };}; : Greeting 문자열 배열에 초기화를 끝 내고 블럭을 닫았다.9 public void paint(Graphics g) {public : 함수의 억세스 퍼미션void : 함수의 리턴 타입 void는 아무것도 리턴하지 않는다.paint : Hello 클래스의 메소드Graphics : 그림을 그리는데 필요한 정보를 가지고 있는 자료 구조 타입

slide28

g.drawString(Greeting[0], 25, 25);

  • g.drawString : 문자열을 화면에 그린다.
  • 애플릿에서는 System.out.print를 이용해서 화면에 문자열을 출력할 수 없다.
  • Greeting[0], 25, 25 : 문자열 Greeting[0]을 X좌표 25, Y좌표 25에 그린다.
  • 11 }
  • paint 메소드의 끝을 의미한다.
  • 12 }
  • Hello 클래스의 끝을 의미한다.
slide34

자바는 대소문자를 구별한다. DOS에서는 대소문자를 구별하지 않기 때문에, 자바 파일 이름도 대소문자 구별 없이 사용하는 경우가 많이 있는데, 유감스럽게도 자바는 프로그램내에서는 물론 파일 이름도 대소문자를 구별한다.

  • 한글이름으로 된 디렉토리에서는 잘 안된다. 도스에서 한글 이름의 디렉토리를 사용하는 경우에도 자바에서는 문제가 될 수 있다. 이것은 주로 클래스 패스를 찾는 동안에 한글 이름의 디렉토리는 자바가 잘 인식하지 못하기 때문이다.
  • 자바 초보자가 자주 범하는 실수들
slide35

3. 자바 소스 파일은 .java 로 끝나고, 텍스트 형태로 저장해야 한다. 윈도우 95에서 자바 소스 파일을 편집하는데 많이 사용되는 편집기는 메모장이나 MS 워드 등 이다. 메모장이나 워드를 사용하는 경우에 자바 소스 파일의 이름이 .java로 끝나는지 확인해봐야 한다. 특히 워드로 작성하는 경우에는 워드 포맷이 아닌 텍스트 형태로 저장하는 것을 잊어서는 안된다.

  • 자바 초보자가 자주 범하는 실수들
slide36

4. 자바 실행 파일 패스와 클래스 패스가 제대로 설정되어야 한다. autoexec.bat 파일에 다음 변수가 설정되어 있어야 한다.

set JAVA_HOME=c:\javaset

CLASSPATH=.;c:\java\lib\classes.zip PATH=%PATH%;%JAVA_HOME%\bin

  • 자바 초보자가 자주 범하는 실수들
slide37

5. main()이 있는 클래스를 실행시켜야 한다. 초보자들은 때로는 main()이 없는 클래스를 java 인터프리터로 실행하려고 한다. main()이 없는 클래스는 java 인터프리터로 실행시킬 수 없다.

6. main은 항상 public static void main(String args[]) { } 형태이다.

  • 자바 초보자가 자주 범하는 실수들
slide38

7. 애플릿으로 작성한 클래스는 항상 public 이다. 자바가 처음 나왔을 때 teach yourself 책들 중 하나가 애플릿을 public으로 선언하지 않은 프로그램이 애플릿 프로그램 첫 예제로 나온적이 있었다. 물론 당시 자바책도 많지 않은 상황에서 자바를 배우려는 사람들은 이 부분에서 많이 고생했을 것이다. 애플릿 클래스는 항상 public이어야 한다.

  • 자바 초보자가 자주 범하는 실수들
slide39

8. 한 파일에 public 클래스는 1개를 초과할 수 없다. 한 파일에는 public 클래스가 최대 1개이다. 1개를 초과하는 경우에는 컴파일시에 에러 메시지를 보여준다.

9. public 으로 선언된 클래스가 있는 경우에 파일 이름은 클래스 이름과 동일해야 한다.

  • 자바 초보자가 자주 범하는 실수들
slide40

10. 생성자(constructor)는 리턴 타입이 없고, 클래스 이름과 동일 하다. 어떤 때는 클래스의 생성자가 제대로 작동하지 않는 경우가 있다. 이런 경우에는 대부분 생성자 선언이 잘못되어 있기 때문이다. 생성자는 클래스 이름과 동일해야 하고 리턴 타입이 없어야 한다. 리턴 타입이 있는 경우에는 다른 일반 함수로 인식하게 된다.

11. 애플릿은 애플릿뷰어나 웹브라우저를 이용해서 실행시켜야 한다.

  • 자바 초보자가 자주 범하는 실수들
slide41

12. HTML에서 애플릿의 width와 height 사이에는 ","가 없다.

<applet code=클래스파일 width=300 height=200> </applet>

13. 자바에서 제공하는 클래스 이름과 동일한 이름으로 클래스를 만들지 않는 것이 좋다.

  • 자바 초보자가 자주 범하는 실수들
slide42

14. 클래스의 멤버 필드와 함수의 아규먼트 이름이 같은 경우, 아규먼트의 이름이 우선순위가 높다. 예를 들면,

public class Test { int x;

public Test(int x) { x = x; } }

는 원하는 결과를 얻을 수 없다. 프로그래머는 멤버필드 x 에 아규먼트로 들어온 값을 할당하려고 하였는데 결과는 아규먼트 x에 아규먼트 자신의 값을 다시 할당한 결과가 되었다. 이런 경우에는 항상 클래스의 멤버필드임을 확실히 하기 위해서 this 레퍼런스를 사용한다.

즉, this.x = x; 형태로 변경해야 한다

  • 자바 초보자가 자주 범하는 실수들
slide43

15. HTML에서 애플릿의 code 부분에 클래스 이름이 정확한가 확인해 보라.

<applet code=클래스파일이름 width=300 height=200> </applet> 에서 "클래스파일이름"의 철자가 틀리는 경우에 IOException 에러가 발생한다. 철자가 틀리지 않도록 조심해야 한다.

16. BorderLayout에서 컴포넌트를 붙이는 경우 "East", "S_

outh", "West", "North", "Center" 의 대소문자 구별 및 철자에 유의해야 한다. 철자가 틀리는 경우에 컴포넌트가 화면에 안보일 수 있다.

  • 자바 초보자가 자주 범하는 실수들