デフォルトパッケージ

ずっと前に誰かが作ったJarファイル内のクラスをインポートしようしたのだが、コンパイルエラー発生。以前はコンパイル出来てたはずなのだが……。
そのクラスがデフォルトパッケージだったので、そのへんが怪しいなぁと思って調べたらずばり。JDK1.4から仕様が変わったせいでした。


コンパイラは、名前のないネームスペースから型をインポートする import 文を拒否するようになりました。以前のバージョンのコンパイラは、こうした import 宣言を、理論的には言語で許可されていなくても (import 句に現れる型名がスコープ内に存在しないため)、 受け入れていました。仕様の中では、import 文の中に単純名を含めることはできないこと、また名前のないネームスペースからインポートを行うことはできないことが明示されています。
要約すると、次の構文は有効ではなくなりました。
import SimpleName;

また、名前のないネームスペースからネストしたクラスをインポートする次の文も、有効ではなくなりました。
import ClassInUnnamedNamespace.Nested;

コード内でこうした問題を修正するには、すべてのクラスを、名前のないネームスペースから名前付きのネームスペースへ移動する必要があります。

っていうか、なんでデフォルトパッケージ何か使ってんだよ……。しかもそのJarファイルのソースを持っているのが他部署の人で現在連絡取れず。どーすんねん。