はじめに

シェアレジ作品番号:SR060020

機能概要>
Javaの.classファイルやjarファイルを読み込んで、クラス間の継承関係を解析し、ツリー表示するツールです。
その他に、クラス、インターフェース、メソッド、フィールドなどの詳細データを画面に表示、あるいはファイルに出力する機能もあります。


目次>

1.ご利用の前にお読み下さい。
2.実行環境
3.インストール方法
3−1.ファイル構成
3−2.Javaの実行環境の準備
3−3.インストーラ
3−4.itp_zip.datの解凍
3−5.解凍後
4.起動方法
4−1.起動コマンド
4−2.起動ログ
5.Javaの標準クラスライブラリやクラスパスの扱い
5−1.解析対象
5−2.環境変数
6.読込時のメモリー不足について
7.不具合、未実装など
8.問い合せ先




1.ご利用の前にお読み下さい。
このソフトウェアを一度でも使用した時点で以下の事項に同意したものとみなします。

・免責事項
 このソフトウェアを使用すること、およびこのドキュメント(Readme.html)やヘルプドキュメントなどを読んだことによって使用者に生じた一切の損害、不利益に対して作者は一切の責任を負いません。また、このソフトウェアの不具合、仕様について、コード修正や回避策の提示、内部仕様などの情報提供、ソースコードの開示などを、作者に強制させることはできません。

・禁止事項
 このソフトウェアの販売を作者以外の第三者が行うことはできません。また、このソフトウェアのコードの一部または全部をそのまま、あるいは、改変して、他のソフトウェアの一部として利用することはできません。
 ライセンスキーによって機能制限を外したバージョンについては、支払いを行った方だけが使用できるものとします。

*法人のお客様の場合は、ユーザ数分お支払いをお願いします。



2.実行環境

・プラットフォーム
 プログラムの主要部はJava 1.4で作成されていますが、起動部分はMicrosoft Visual C++で作成されています。従って、Microsoft Windows以外では起動できません。開発はWindows XPで行いましたので、Windows XPでの使用を推奨します。 また、使用に際しては、前もってJava 1.4あるいはJava 1.5(Java 5)をインストールしておく必要があります。正しく、インストールできていない場合は、起動ができませんので、ご注意ください。具体的には、下記のレジストリに値が正しく設定されていることが条件になります。

Java 1.4)
 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.4

Java 1.5)
 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.5

・実行マシンの要求性能
 読み込むクラス・インターフェース数が多いと、非常に多くのメモリーを消費します。例えば、クラス・インターフェース数が500程度だと、140MB程度のメモリーを消費します。実行マシンには512MB以上のメモリーを搭載しておいた方がいいかもしれません。

 テストで使用していたノートPCは、Intel Pentium M 1.1GHzを搭載していますが、この環境でも十分使用できたので、Pentium 4やAMD Athlon XPの環境であれば問題ないと思います。


3.インストール方法

3−1.ファイル構成

ダウンロードしたファイルを解凍すると、以下のファイルが現れます。
ファイル名 内容
decoder.exe itp_zip.datを、解凍するツールです。解凍の際にライセンスキーが必要になります。
itp14_demo.exe Java 1.4の環境でデモ用に実行する場合の起動プログラムです。デモ用の場合は、読み込めるファイル数やクラス・インターフェース数に制限があります。
itp50_demo.exe Java 1.5(Java 5)の環境でデモ用に実行する場合の起動プログラムです。デモ用の場合は、読み込めるファイル数やクラス・インターフェース数に制限があります。
itp_zip.dat Java 1. 5(Java 5)の環境で使用する起動プログラムが含まれているファイルです。使用するには、decoder.exeで解凍する必要があります。解凍後のファイルはZIPによる圧縮ファイルになります。
parser.dat プログラムの主要部分が含まれているファイルです。実行する際は、起動プログラムと同じディレクトリにおいておいてください。

上記の他に、docsディレクトリが作成されます。このディレクトリには、このファイル(Readme.html)の他、ヘルプドキュメントなどが含まれています。


3−2.Javaの実行環境の準備
 このソフトウェアは、Java 2 Standard Edition 1.4、あるいは1.5(Java 5) を使用して実行します。従って、このソフトウェアを実行する前に、Javaの公式サイトあるいは、Java関連の雑誌に付属のCD等から入手し、実行するコンピュータにインストールしておく必要があります。インストール方法および環境設定については、市販の書籍、Java関連のサイト等から情報を入手してください。
3−3.インストーラ
 このプログラムにはインストーラはありません。Java実行環境がインストールされていれば、使用することができます。
 解凍したファイルに含まれているJava 1.4用のitp14_demo.exe、あるいはJava 1.5用のitp50_demo.exeを実行してください。画面が起動されます。但し、これら2つの起動プログラムは読み込むクラス数などに制限があります。
3−4.itp_zip.datの解凍
 itp14_demo.exeとitp50_demo.exeはデモ用の起動プログラムで、これを実行することでプログラムは使用できますが、読み込めるファイル数やクラス・インターフェース数に制限があります。制限のない起動プログラムは、itp_zip.datを解凍することで入手できます。itp_zip.datを解凍すると、Java 1.4用とJava 1.5(Java 5)用に2つの制限のない起動プログラムが含まれた圧縮ファイルが現れます。
解凍は、Windows上でdecoder.exeを実行してください。下記の画面が現れます。

 通常は、左記の画面で、ライセンスキーを入力して、「解凍」ボタンを押すだけで終了です。出力先フィールドに設定されているファイル名で、プログラムが出力されます。データファイルフィールド、出力先フィールドに設定されている値を変更する必要はありません。
「対象ファイル選択」パネルのラジオボタンを選択すると、LZH用とZIP用のファイル名にそれぞれ変更されます。

 解凍対象のファイルがdecoder.exeと同じフォルダーにない場合、ファイルの名前を変更した場合などは、データファイルフィールドの値を変更する必要があります。この時は、「データファイルの選択」ボタンを押すとファイル選択ダイアログが起動されるので、そこで選択してください。
 ファイルの解凍後のファイルを別の名前にしたい場合は、出力先フィールドを変更する事になります。この時は「出力先」ボタンを押すとファイル選択ダイアログが起動されるので、そこで選択してください。
 解凍ボタンを押して、ファイルが出力されたら、「閉じる」ボタンを押してください。画面が閉じます。

3−5.解凍後
解凍後のファイルを、ZIP形式で、更に解凍してください。下記の2つのファイルが現れます。
ファイル名 内容
itp14.exe Java 1.4の環境で実行する場合の起動プログラムです。
itp50.exe Java 1.5(Java 5)の環境で実行する場合の起動プログラムです。
上記2つのプログラムをparser.datと同じディレクトリにおいてください。
後は、Javaのバージョンに従って上記のプログラムを実行すると、プログラムが起動されます。
*上記2つの起動プログラムでは、読み込むファイル数やクラス・インターフェース数に制限を設けていませんが、搭載メモリー容量に比べて読み込むクラス・インターフェース数が多すぎると、読み込み時にメモリー不足で、読み込めない状況が発生することがあります。



4.起動方法

4−1.起動コマンド
Javaのバージョンにより下記のいずれかを実行します。
Java 1.4 → itp14
Java 1.5(Java 5) → itp50
*Java 1.3以前のバージョンでは起動できません。
コマンドラインオプションについて
コマンドラインオプションがいくつか提供されており、下記のものが用意されています。いずれも省略可能です。
オプション 形式 意味
-f -f 読み込むファイル・ディレクトリ 読み込む対象のファイル名あるいはディレクトリをカンマで列挙します。ファイルはclassファイル、jarファイル、zipファイルになります。ディレクトリを指定すると、そのディレクトリに存在するclassファイル、jarファイル、zipファイルが読み込まれます。また、-dt trueが指定されている場合は、そのディレクトリの下部ディレクトリ全てを対象に読み込ます。
-dt -dt true
あるいは
-dt false
-fオプションでディレクトリが指定されているとき、そのディレクトリの下部ディレクトリ全てを対象にclassファイル、jarファイル、zipファイルを読み込ます。
-fオプションが指定されていないときは、無視されます。
-list -list 読込対象のファイルを記述したファイル名 読み込む対象のファイル名を1行に1つ記述したテキストファイルを指定します。#で始まる行はコメント行とみなされます。
コマンドラインオプションを指定した場合の起動の仕方を例示します。
itp14 -f foo.jar,Test.class,c:\myjava -dt true
リストファイルでの読込対象の指定
itp14 -list target.lst

target.lstの内容
# class library
foo.jar
# main class
Test.class
4−2.起動ログ
 起動プログラムは、起動時のログをファイルに出力します。実行したのに画面が表示されないときは、起動ログを参照してください。エラーで起動が中止されているかもしれません。
 起動ログは、起動プログラムのあるディレクトリの直下にlogというディレクトリがあれば、そこに作成されます。ない場合は起動プログラムのあるディレクトリに書かれます。
 ファイル名は、下表のboot.log及びitp_boot_yyyyMMddHHmmss.logという名前で2つ作成されます。
ファイル名 内容
boot.log 起動プログラムが出力するログファイルです。起動するごとに上書きされますので、過去のログは保存されません。
itp_boot_yyyyMMddHHmmss.log Javaコード部分が起動時に出力するログファイルです。yyyyMMddHHmmssの部分には作成年月日時分秒が入ります。

5.Javaの標準クラスライブラリやクラスパスの扱い

5−1.解析対象
 このツールでは解析対象となるのは、読込対象として指定したクラスファイルやJarファイルだけですが、解析したクラスの親クラスなどが読込対象のファイルの中に含まれていない場合、Javaの標準クラスライブラリやクラスパスに設定されたクラスファイルやJarファイルを検索して、見つかれば、読込んで解析します。つまり、以下のことになります。

・読込対象として指定したクラスファイルやJarファイルに含まれるクラス・インターフェースは全て読み込まれ解析される。

・Javaの標準クラスライブラリや、クラスパスに設定されたクラスファイルやJarファイルからは、読込対象のクラスファイルやJarファイルで使用されているクラス・インターフェースだけが読み込まれ解析される。
5−2.環境変数
 通常クラスパスの環境変数はCLASSPATHですが、当プログラムでは、他にITP_CLASSPATHという環境変数もクラスパスとして扱います。もし、双方が定義されていた場合は、ITP_CLASSPATHのみを扱い、CLASSPATHは無視します。下記のロジックになります。

・ITP_CLASSPATH、CLASSPATH双方が定義されていた場合
 ITP_CLASSPATHを参照し、CLASSPATHは無視します。

・ITP_CLASSPATHが未定義で、CLASSPATHが定義されていた場合
 CLASSPATHを参照します。

*ITP_CLASSPATH、CLASSPATH双方とも未定義でもエラーにはなりません。
*Javaの標準クラスライブラリはレジストリの設定内容を参照して決定します。クラスパスで設定しても参照先を変更することはできません。

6.読込時のメモリー不足について

起動プログラムでは、Java実行環境のスタックサイズを可能な限り大きくとって起動を行っています。大体、800MB〜1GBですが、それでも読み込むクラス・インターフェース数が多いとメモリー不足で失敗するときがあります。そのときは、以下の方法を試してみてください。

1)搭載メモリーを増やす

2)搭載メモリーを増やしてもだめな場合は、一部のみを読込対象に指定し、残りをクラスパスに設定する。
*但し、クラスパスに設定したものは、必要なもののみ読み込まれるので、全体の継承ツリーは構築されないことに注意してください。



7.不具合、未実装など
・注釈(Annotation)データの内容を表示する画面は実装していません。(注釈はJava 1.5で追加された仕様です)

8.問い合せ先
作者への問い合せは、こちらまで。
但し、かならずご返事を差し上げるとは限りませんので、ご了承下さい。

登録商標など

Microsoft、Microsoft Windows、Microsoft Windows XP、Microsoft Visual C++などは、Microsoft Corporationの登録商標です。
Java、Java 1.4、Java 1.5、Java 5などはSun Microsystemsの登録商標です。
Intel Pentium M、Intel Pentium4はIntel Corporationの登録商標です。
AMD Athlon XPはAdvanced Micro Devices,Incの登録商標です。
本ページに記載されている会社名や商品名は一般に各社の商標です。



Copyright 2005-2006 by K.Uchida