================================================================================
名前: MergeDoc
種類: Java アプリケーション
動作環境: JRE 1.4 以上
ライセンス: CPL v1.0
URL： http://sourceforge.jp/projects/mergedoc/
================================================================================

Eclipse は日本語化しても Java 標準 API のメソッドなどにマウスを合わせたときにホ
バー表示される説明は日本語化されません。これは Eclipse が JDK 付属の Java ソース
から Javadoc コメントを取得し表示しているためです。MergeDoc は日本語のホバー表示
を可能にするために Java ソースと日本語 API ドキュメントをマージするツールです。

またホバー表示以外にも次のような場合に参照するソースもコメントが日本語になります。

  - Java 標準 API のメソッドを Ctrl + 左クリック
  - Java 標準 API の例外スタックトレースからジャンプ
  - パッケージエクスプローラから rt.jar を辿ってクラスファイルを開く


動作確認済みの実行環境と Java ソースのバージョン

  一応動作が確認できている環境は下記のとおりです。私が確認したものと、使っていた
  だいている方の情報をもとにしています。

    OS                JRE       Javaソース    API ドキュメント
    -------------------------------------------------------------------------
    Win2K(SP3)        1.4.2_01  1.2.2_008     jdk1_2update-doc-ja.zip
    Win2K(SP3)        1.4.2_01  1.3.1_03      j2sdk-1_3_0-update1-doc-ja.zip
    Win2K(SP4)        1.4.2_02  1.4.2_02      j2sdk-1.4.0-doc-ja.zip
    WinXP(SP1)        1.4.2_01  1.4.2_01      j2sdk-1.4.0-doc-ja.zip
    Linux FedoraCore1 1.4.2     1.4.2         j2sdk-1.4.0-doc-ja.zip
    Win2K(SP4)        1.4.2_02  RoboCode1.0.6 robocode_api.zip

  Servlet API や Struts の API は Ja-Jakarta（http://www.jajakarta.org/）の有志
  の方々により日本語訳されたソースが配布されています。またこれらの Eclipse での
  利用方法については同 Ja-Jakarta のメンバでもある「あめのこやね
 （http://www.koyane.org/）」さんのサイトで詳しく解説されていますので、そちらを
  ご参照ください。
  
  その他のものでも日本語 API ドキュメントが配布されている場合は MergeDoc でマー
  ジ出来るかもしれません。出来たとか、問題ありなどフォーラムなどでお知らせいただ
  ければ幸いです。



================================================================================
インストール

  mergedoc.zip を適当な場所に解凍してください。
  以前のバージョンがある場合は置換定義ファイルを上書きしてしまうのでカスタマイズ
  している場合は事前に退避してください。



アンインストール

  ディレクトリごと削除してください。



起動方法

  Windows で JAR ファイルに JRE/JDK 1.4 以上の javaw を関連付けている場合は
  mergedoc.jar ダブルクリックで起動します。また mergedoc.jar のショートカットで
  も起動出来ます（ショートカット用のアイコンは \conf\icon.ico）。
  
  それ以外の場合は次のコマンドで起動してください。

    java -jar mergedoc.jar

  mergedoc.bat は Windows 用のサンプル起動ファイルです。必要に応じてエディタなど
  で JAVA_HOME を編集してください。


  起動オプション

    -Dtarget.directory=ディレクトリ名

      ターゲットディレクトリに入力ソースアーカイブファイルがある有効なディレクト
      リを指定することで設定画面にデフォルトのファイル名が初期値としてセットされ
      ます。

        例）java -jar -Dtarget.directory=C:\j2sdk1.3 mergedoc.jar

      Javadoc API ドキュメントは JDK インストールディレクトリ内に配置しておくこ
      とをお勧めします。このオプションにより API ドキュメントディレクトリも検出
      されます。また、このオプションを指定しなかった場合でも、Javadoc API 参照デ
      ィレクトリ設定時に入出力アーカイブファイルが自動で検出されます。

        例）C:\j2sdk1.3\docs\ja\api\



操作方法

  起動後の設定画面で設定を行い実行ボタンを押下してください。

    基本設定


     * API ドキュメントディレクトリ

         日本語 Javadoc 標準 API ドキュメントを格納しているディレクトリを指定。
         package-list ファイルがあるディレクトリです。
         例）C:\j2sdk1.3\docs\ja\api
         
         エンコーディングは JDK の場合は ISO-2022-JP にしてください。


     * 入力ソースアーカイブファイル

         Java 標準 API ソースアーカイブファイルを指定。
         例）C:\j2sdk1.3\src.jar
         
         エンコーディングは JDK の場合、ASCII 以外の文字が含まれていないので
         何でも OK です。
         

     * 出力ソースアーカイブファイル

         ソースを出力する新しいアーカイブファイルを指定。
         例）C:\j2sdk1.3\srcja.zip

         エンコーディングは使用するエディタや IDE に合わせてください。Eclipse の
         場合はテキスト・ファイル・エンコードと同じにしてください。またプロジェ
         クトによってエンコードが異なる場合は srcja_MS932.zip、srcja_EUC-JP.zip
         などのように複数のファイルを作成しておくと良いと思います。



    詳細設定

        出力ソースの調整を行います。設定をカスタマイズする場合は conf ディレクト
        リの global.xml を参照してください。


  API ドキュメントディレクトリを省略して実行することで Java ソースファイルの文字
  コードの変換のみを行うことが可能です。その場合でも詳細設定は適用されます。なお
  その他のファイルは文字コード変換も詳細設定も適用せずそのまま出力します。

  例えばマージ済みの srcja_EUC-JP.zip を元に srcja_MS932.zip を作成することが出
  来ます。マージに比べ、コード変換のみのほうがかなり高速です。



Eclipse で使用する場合の設定

  Eclipse のパッケージエクスプローラから JRE システム・ライブラリー内の rt.jar
  を右クリックしてプロパティを開き Java ソースの添付でロケーションパスに MergeDoc
  で作成した出力ソースアーカイブファイルを指定してください。

  ホバー表示したときに枠内にコメントが収まらない場合は F2 で固定表示し枠を広げる
  ことが可能です。



謝辞

  Eclipse wiki の方々にたくさんの助言をいただきました。感謝いたします。
  
    - http://www.eclipsewiki.net/eclipse/
    - http://www.eclipsewiki.net/eclipse/index.php?日本語でホバー表示



================================================================================
変更履歴

1.2.7
  - バージョン 1.2.6 が JDK1.4.1 で起動しなくなっていたのを修正。
    Charset.forName("ISO-2022-JP") -> JDK1.4.2 OK、JDK1.4.1 NG
  - 動作プラットフォームからテキストフィールドへのファイルドロップを可能にした。
  - ファイル選択ダイアログに親コンテナを設定していなかったのを修正。

1.2.6
  - ラベル文字列が不適切なような気がしたので変更した。
    "Javadoc API 参照ディレクトリ" -> "API ドキュメントディレクトリ"
  - 出力エンコーディングだけでなく、「API ドキュメントディレクトリ」と「入力ソー
    スアーカイブファイル」のエンコーディングも指定できるようにした。RoboCode
    対応。また、API ドキュメントを省略することで Java ソースの文字コード変換のみ
    が行えるようにした。
  - RoboCode API ドキュメントのクラスコメントがマージ出来ていなかったのを修正。
    独自 Doclet?
  - Java ソースファイル以外は出力ソースアーカイブに出力していなかったが、出力す
    るように変更した。
  - 詳細設定に「改行を CRLF にする」を追加した。

1.2.5
  - 起動パスに空白や日本語が含まれていた場合、起動出来なかったのを修正。
  - 起動速度を改善した。-> JDK1.4 の Swing で高速化された javax.swing.UIDefaults
    の Lazy value が無駄になるようなコードを使用してしまっていた。

1.2.4
  - Windows のショートカット用のアイコン \conf\icon.ico もつけた。

1.2.3
  - 確認ダイアログの×ボタンで「はい」の動作ではなく「いいえ」となるように修正。
  - ウィンドウ位置や設定内容を保存しておくようにした（-Dtarget.directory 優先）。
  - ウィンドウリサイズ中にウィンドウの内容を更新するようにした（OS依存）。
  - ファイル選択ダイアログのフォントをプロポーショナルにした。
  - アイコンをつけた。

1.2.2
  - 置換定義ファイルの置換エントリを階層化した場合に親の「対象」属性を引き継げて
    いなかったのを修正。
  - 詳細設定の「HTML 装飾タグを削除する」は strong, sup, font も削除するようにし
    た。
  - 置換定義にエラーがあった場合にダイアログに原因を表示するようにした。
  - 結果プレビュー書き換え時のちらつきをなくした（メモリ描画）。
  - 詳細設定ペインのスクロールが遅かったのを修正。

1.2.1
  - ソースや設定ファイルなどの文字コードを UTF-8（LF）に統一した。
  - Linux（Fedora Core 1）で基本設定パネルのラベルの文字が切れる場合があったのを
    修正した。

1.2.0
  - 置換定義ファイルの内容をチェックボックスで選択できるようにした。
  - 詳細設定の結果をプレビューできるようにした。

1.1.0
  - ユーザ定義フィルタで出力をカスタマイズできるようにした。
  - Javadoc API 参照ディレクトリに package-list ファイルが無い場合、サブフォルダ
    を検索していたが、階層が深い場合に問題があるため検索しないようにした。
  - ファイル選択時に NPE が発生していたのを修正。
  - コメントの中に HTML コメントがある場合、Javadoc コメントの取得に失敗していた
    のを修正。
    JDK1.4 javax.swing.JFileChooser#showDialog など
  - Javadoc コメントとシグネチャの間に Javadoc コメントではないブロックコメント
    があった場合、置換できていなかったのを修正。
    JDK1.4 java.util.Properties#list(PrintWriter) など
  - param タグの引数名をインデントしていたが、更に説明を多段インデントするように
    した。
  - Javadoc API ドキュメントが存在しないソースもTABをスペースに変換するようにし
    た。
  - serialData、serialField タグを Java ソースコメントから取り込むようにした。
  - 30% ほど高速化した。Eclipse Profiler おすすめ。

1.0.4
  - serial タグを Java ソースから取り込むようにした。

1.0.3
  - param タグの名前の次の説明の開始桁位置を揃えるようにした。
  - コメントの折り返し判定に単純な日本語助詞解析するようにした。
  - コメント中の長い英数字文字列の折り返しに問題があったのを修正。
  - 各入力フィールドが空のときに Javadoc API 参照ディレクトリを設定した場合、入
    出力アーカイブファイルを探して表示するようにした。

1.0.2
  - 元の Java ソースと行番号を合わせるようにした。
  - コメントを適当に折り返すようにした。
  - HTML リンクを link タグに置き換えるようにした。
  - タブをスペースに展開するようにした。
  -「～」が「?」に文字化けしていたのを修正。
  - spec タグ（非標準）を Java ソースから取り込むようにした。
  - クラスコメントが２つ連続して出力されてしまう不具合修正。
  - サンプルバッチファイルの JAVA_HOME をデフォルトに修正。

1.0.1
  - 誤って Javadoc コメントとして認識していた部分の不具合を修正。
    JDK1.4 java.io.FileDescliptor

1.0.0
  - インナークラスに対応。
  - JDK1.4.2 の ISO-2022-JP コンバータバグ（Bug Id 4879522）対応のため Javadoc
    の読み込みに JISAutoDetect を使用することで回避していたが、コンバート前にバ
    イト列を一部操作し ISO-2022-JP を使用するようにした。これにより以下クラスの
    Javadoc HTML ファイルを読み込むことが可能になった。
    JDK1.4 java.util.logging.Logger
    JDK1.4 javax.naming.OperationNotSupportedException
    JDK1.4 javax.naming.PartialResultException        
  - 推奨されないクラスの deprecated タグを正しく出力するように修正。
    JDK1.4 java.io.StringBufferInputStream など。
  - author、version タグコメントを Java ソースのコメントから取得するようにした。
  - 改行文字が CRLF の Java ソースの場合の不具合対応。
    JDK1.4 java.nio.ByteBuffer など。
  - 出力ソースアーカイブファイルの圧縮レベルを BEST_SPEED にした。
  - 実行ボタン押下時のレスポンスを改善した。

0.99
  - Javadoc HTML に \r がある場合、無視するようにした。
  - 開発用に以下のオプションを追加。
    target.class  処理対象クラス。
    logging.level ロギングレベル。設定できる値は JDK1.4 の
    java.util.logging.Level に定義されているもの。
    例）java -jar -Dlogging.level=ALL
         -Dtarget.class=java.lang.String mergedoc.jar

0.98
  - Java ソースと Javadoc のシグネチャがほとんど同じという前提でコアを作成してい
    たが、多くの指摘があり不具合が多発。これを改め、シグネチャはほとんど異なるも
    のと考え出来るだけ抽象化して（相変わらず文字列でだけど）比較する方式に変更。
  - 最後の param が抜け落ちる場合があったのを修正。
    java.util.Vector#add(Object) など
  - @deprecated 指定があり、コメントが存在しないメソッドの変換に失敗していたのを
    修正。
    javax.swing.JTable#createScrollPaneForTable など
  - 起動引数 -Dtarget.directory=xxx でフィールドデフォルト値を指定できるようにし
    た。
  - インナークラス対応しようとしたが挫折。

0.97
  - synchronized なメソッドでコメントが置換されていなかったので修正。

0.96
  - 以下のクラスで変換されていない部分があったので修正。
    javax.xml.parsers.DocumentBuilder
    java.lang.System
    java.awt.Color
    ソースと Javadoc で static final / final static の順番が異なる場合があるため
    発生していた。

0.95
  - クラスコメントにタグがひとつもない場合、クラスコメントが置換されていなかった
    ので修正。org.w3c.dom.Document など。

0.94
  - インターフェースのメソッドが日本語化がまったくされていなかったので修正。通常
    ソース上では public が無い場合が多いが Javadoc のほうは常に public がついて
    いることを考慮できていなかった。

0.93
  - Java ソースのメソッド引数の間にタブ文字が含まれている場合、コメントが日本語
    化されていなかったのを修正。
  - J2SDK1.4 の String#regionMatches(引数4つのほう) など

0.92
  - 出力エンコーディングはデフォルトエンコーディングを使用していたが Eclipse の
    テキスト・ファイル・エンコーディングに合わせないと文字化けが発生するため設定
    画面で指定できるように変更。

0.91
  - 出力ソースアーカイブファイルが存在しなくても、常に上書き確認がでていたのを修
    正。
  - Javadoc API ディレクトリを探す条件を変更。
    変更前: index-files ディレクトリがあるディレクトリ
    変更後: package-list ファイルがあるディレクトリ

0.90
  - 初期リリース


--------------------------------------------------------------------------------
Copyright (c) 2003 Shinji Kashihara. All rights reserved.
This program and the accompanying materials are made available under
the terms of the Common Public License v1.0 which accompanies
this distribution, and is available at cpl-v10.html.
