책 예제 컴파일 오류 문제
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.* 에서 *를 주면 에러가 발생하는지 원인과 이유를 알고 싶습니다.
원인 찾아 해메다가 결국 여기까지 왔네요...
감사합니다.