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なのに。