次のディレクトリ構造があります。
A.java
a
└── A.java
A.java:
import a.*;
class A {
public static void main(String[] args) {
System.out.println("Hello Human");
}
}
a/A.java:
package a;
public class A {}
そして、コンパイルして実行します:
$ javac A.java && java A
Hello Human
しかし、削除するとa/A.java
(ただし、フォルダーは保持しますa
)、コンパイルできなくなります:
$ rm a/A.java
$ javac A.java && java A
A.java:1: package a does not exist
import a.*;
^
1 error
なんで?