torutkのブログ

ソフトウェア・エンジニアのブログ

Javaアノテーション実験:package-infoがCygwinだとコンパイルエラー

J2SE 5.0(Tiger)から導入されたアノテーション、packageにもアノテーションを付加できますが、その際は"package-info.java"という名前でソースファイルを記述し、そこにアノテーションを記述します。

/**
 * 私のパッケージです(何のことだ)。
 */
@MyAnnotation
package mypackage;

しかし、なぜかTigerのjavacでコンパイルするとエラーになります。

$javac mypackage/package-info.java
mypackage/package-info.java:5: パッケージの注釈はファイル 
package-info.java 内になければなりません。
@MyAnnotation
 ^
エラー 1 個
$

これは、BugID:6198196にあり、プラットフォーム固有のファイルセパレータ(Windows上なら\)を使用していない場合にエラーとなる問題です。Windows上でCygwinを使用しているときが該当します。
Mustang b40で解決されています。