메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 java 프로그래밍

뇌를 자극하는 java 프로그래밍 질의응답 게시판입니다.

책 예제 컴파일 오류 문제

2013-01-02

|

by seejune

1948

//package math;
import geometry.polygon.*; //Rectangle;
import geometry.Circle;
import java.io.*;

class PackageTest3
{
    public static void main(String args[])
    {
        Rectangle obj;
        Circle obj2;

        obj = new Rectangle(2, 3);

        System.out.println("넓이: " + obj.width);
        System.out.println("높이: " + obj.height);
        System.out.println("면적: " + obj.getArea());

        obj2 = new Circle(10);
        System.out.println("Circle면적: " + obj2.getArea());
    }
}

위의 소스는 책에 있는 예제입니다. 그런데

javac -d . PackageTest.java 로 컴파일하면 아래와 같은 오류가 발생됩니다....
(javac PackageTest.java 해도 같은 같은 오류 발생.)

C:\교육\자바교육>javac -d . PackageTest3.java
PackageTest3.java:11: error: cannot access Rectangle
        Rectangle obj;
        ^
  bad class file: C:\교육\자바교육\geometry\polygon\Rectangle.class
    class file contains wrong class: geometry.polygon.Rectangle
    Please remove or make sure it appears in the correct subdirectory of the cla
sspath.
1 error

그런데 소스 중에서 아래 라인의 주석을 풀고
package math;  <= 주석 해제

javac -d . PackageTest3.java 하면 오류가 발생하지 않습니다.
그리고 * 대신 클래스 이름을 명시해 주면 이 또한 에러가 발생하지 않습니다.
import geometry.polygon.Rectangle;  <= 오류없음.

궁금한 것은 왜 import geometry.polygon.* 에서 *를 주면 에러가 발생하는지 원인과 이유를 알고 싶습니다.

원인 찾아 해메다가 결국 여기까지 왔네요...
감사합니다.
댓글 입력