GradleでのJavadoc実行時文字化け
Eclipse上で開発するjavaファイルのソースコードはUTF-8にしている(今更デフォルトのMS932でも無いだろう)。そして、Gradleでjavadocを実行してみるのだが、エラーがあるときは以下だ。
バケバケで何が何だかわからない。
javadocのメッセージを英語にする
まずはjavadoc自体の発生するメッセージを英語にする。日本語にしてくれてもバケバケなので読めない。英語の方がまだマシだ。
これには以下の環境変数を設定する。これ以外の方法は見つからなかった。
JAVA_TOOL_OPTIONS=-Duser.language=en
これについてはJavaの使用する環境変数にて説明した。これを行うと、少なくともエラーを指摘するjavadocのメッセージは英語で表示される。
しかし、ソースの中の日本語文字列はまだ化けている。
javadocの文字コード解釈
javadocの文字コード解釈については以下にまとめてくれてる人がいる。
で、次にjavadocのオプションをまとめてみる。
- encoding:ソースコード(*.java)のエンコーディング。UTF-8しか使っていないので、UTF-8
- docencoding:出力ドキュメントのエンコーディング。省略時はencodingと同じ。
- charset:出力ドキュメンのhtml内に記述するcharset。これをわざわざ指定する必要があるのか?docencodingと同じにきまっているじゃないか。
javadocの仕組みのせい?
これらを調べても完全には文字化けは解消できない。以下はあくまでも想像なのだが、こうなっているのではないか?
- javadocはUTF-8のソースを読み込み、UTF-8のバイト列を保持する。
- そのバイト列をWindowsに出力してしまう。本来はMS932なのに。