Eclipse 上で UTF-8 のソースから javadoc を生成する方法
UTF-8 のソースからの javadoc 生成でおこられる
Eclipse から javadoc を起動する際、ソースファイルをシステムのデフォルトエンコーディングで読み込もうとします。おいらの環境ではシステムのデフォルトエンコーディングが MS932 なのですが、ワークスペースのデフォルトエンコーディングを UTF-8 にしているため、javadoc 生成時におこられてしまいます。
javadocのオプション
javadoc には、エンコーディングに関して以下のようなオプションがあります。
オプション | 効果 |
---|---|
-encoding | ソースファイルのエンコーディングの名前 (EUCJIS/SJIS など) を指定します。このオプションが指定されていない場合は、プラットフォームのデフォルトコンバータが使われます。 |
-docencoding | 生成される HTML ファイルのエンコーディングを指定します。この名前は、IANA Registry で与えられた、推奨される MIME 名でなければなりません。このオプションを省略しながら -encoding を使用した場合、生成される HTML ファイルのエンコードは、-encoding によって決められます。 |
-charset | このドキュメント用の HTML 文字セットを指定します。この名前は、IANA Registry で与えられた、推奨される MIME 名でなければなりません。 |
Eclipse 上での指定方法は?
Eclipseでの正しい指定方法ですが、、、わかりません o...rz(知ってる人、教えてください)id:waman さんに教えてもらいました。m(_ _)m
[project] -> [Generate javadoc...] -> [Next] -> [Next]
をたどり、[Extra javadoc options] で設定できます。
以下、オプション例。
-encoding "utf-8" -charset "utf-8" -link http://java.sun.com/javase/ja/6/docs/ja/api -link http://www.hibernate.org/hib_docs/v3/api
※-link オプションは、外部のjavadocへのリンクを行うためのものです。
ということで、バッチファイル経由で javadoc コマンドを起動するというワークアラウンドをしてみました。
バッチファイルは、以下のようになります。
ファイル名は、javadoc_utf8.bat などの分かりやすいものにしておくとよいでしょう。
javadoc -encoding "utf-8" -charset "utf-8" %1 -link http://java.sun.com/javase/ja/6/docs/ja/api
※-link オプションは、外部のjavadocへのリンクを行うためのものです。
設定は、[Project] -> [Generate Javadoc...] の [javadoc command] に、先ほどのバッチファイルを指定してあげれば OK です。
注意点
ソースファイルのエンコーディングを指定するための -encoding オプションを指定すれば、-docencoding オプションが未指定の場合は出力エンコーディングも同一のものが適用されます。しかし、-charset オプションは明示的に指定しなければいけないので注意が必要です。
相対パスの使用
おいらは jdk や eclipse 関連フォルダを丸ごとコピーして使いまわしたりするのですが、そのときに絶対パスというのがかなり厄介です。しかし、javadoc の実行コマンドファイルのロケーション指定は GUI で制御されているため、相対パスを入力することができません。そのため、以下のファイルの情報を直接書き換えることにより、相対パス指定を実現します。
eclipse を一度終了してから、以下の方法で設定ファイルを直接更新します。
ダイアログ設定の上書き
設定ファイル
<ワークスペースフォルダ>\.metadata\.plugins\org.eclipse.jdt.ui\dialog_settings.xml
変更例
<item value="..\jdk\bin\javadoc_utf8.bat" key="javadoc_command_history"/>
プリファレンス設定ファイルの変更
設定ファイル
<ワークスペースフォルダ>\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.jdt.ui.prefs
変更例
command=..\\jdk\\bin\\javadoc_utf8.bat