Eclipse 3.5 + Ant + Javadoc 文字化け、コンソール停止(最終章)

[2010/4/2 追記] Pleiades (プレアデス) Eclipse プラグイン日本語化プラグイン版の Eclipse 3.5 での解決方法
Pleiades Eclipse 3.5 + Ant + Javadoc コンソール停止問題の解決

Eclipse の ant で、Javadoc タスクを実行すると、Javadoc 出力が途中で止まってしまうか、文字化けしてしまう問題との戦いの最終章「解決編」です!

以下二つのエントリーのおさらい

以前の前提条件は以下

  • Windows XP SP3
  • Eclipse 3.4.2 build M20090211-1700
  • Eclipse 内蔵 ant
  • jdk1.6.0_13 javadoc

実行すると

javadoc:
[javadoc] Generating Javadoc
[javadoc] Javadoc execution

と表示されて止まっている。

これの解決策はコンソールのエンコーディングで Other を選び Windows-31J を選択すればOKだった。
または、コンソールのエンコーディングが”Default – inherited” であれば、build.xml の encoding=”” を Windows-31J にすることで自動的に Windows-31J にもなり正常に動作する。
Eclipse 3.4.x あたりは 「[Eclipse][Pleiades] Ant のコンソール・エンコーディング」(cypher256さん、C/pHeR Memo – Java とか。Eclipse とか。)に詳しく書いてある。

しかし、Eclipse 3.5 (Galileo) ではこれでも上手くいかない。
エンコーディングを UTF-8 にすると、とりあえず最後まで動作するも、Javadoc の出力は文字化けする。
これは、Windows マシンのため、Javadoc.exe が Windows-31J でメッセージを出力するからと思われる。

今回はこれの解決方法を示したい。(前置きが長いねcoldsweats01

で、いきなり結論!!

Javadoc タスクに additionalparam=”-J-Dfile.encoding=UTF-8″ を追加した。例えば下のような感じ。
(追記)ただしオープンソースにするなど広く公開する場合には適切でない

<javadoc
	destdir="javadoc"
	encoding="Windows-31J"
	docencoding="Windows-31J"
	charset="Shift_JIS"
	source="1.5"
	verbose="true"
       	doctitle="doctitle"
	use="false"
	sourcepath="src"
	additionalparam="-J-Dfile.encoding=UTF-8"
>

念のため今回の環境は以下

  • Windows XP SP3
  • Eclipse 3.5.2 build M20100211-1343 (eclipse-jee-galileo-SR2-win32.zip)
  • Eclipse 内蔵 ant
  • jdk1.6.0_18 javadoc

build.xml の Ran AS → Ant Build… の Common タブで設定するコンソールのエンコーディングは UTF-8 とすること。

デフォルトでUTF-8の場合
デフォルトでUTF-8の場合
デフォルトを変更してUTF-8にする場合
デフォルトを変更してUTF-8にする場合

Javadoc 以外に途中で止まるとか真っ白となる場合には、そのプロラムが UTF-8 以外のエンコーディングで文字出力しているためと思われます。この場合にはそのプログラムに対して UTF-8 で出力する方法を探すとか、環境変数で日本語とならないように制御するなどの方法を探すしかないようです。

といろいろ書きましたが実は最近は使っていませんでした。
サーバで ant や Maven、Hudson を使うようになると、この問題はあまり関係なくなるんですよね。
とはいえ、つっかえていたものが取れたので良しとしよう。

(完)

“Eclipse 3.5 + Ant + Javadoc 文字化け、コンソール停止(最終章)” への1件の返信

  1. ピンバック: なおっちてきとう日記

コメントを残す

メールアドレスが公開されることはありません。