1.ご利用の前にお読み下さい。
2.実行環境
3.インストール方法
3−1.ファイル構成
3−2.Javaの実行環境の準備
3−3.インストーラ
3−4.itp.datの解凍
3−5.解凍後
4.起動方法
4−1.起動コマンド
4−2.起動ログ
5.Javaの標準クラスライブラリやクラスパスの扱い
5−1.解析対象
5−2.環境変数
6.読込時のメモリー不足について
7.不具合、未実装など
8.問い合せ先
- <JDK>/jre/lib/fonts/fallback
- あるいは
- <JRE>/lib/fonts/fallback
- *fallbackというディレクトリはないので作成しておくこと
Fedora Coreで開発した都合で、起動プログラムの日本語の文字コードがUTF-8になっています。その他の文字コードの環境では文字化けしますので注意してください。起動プログラム以外は大丈夫です。
*ダウンロードしたファイルにgunzipを実行した後、tar -xfを実行する。
ファイル名 | 内容 |
---|---|
decode | itp.datを解凍するツールです。解凍の際にライセンスキーが必要になります。 |
decode.bash | decode作業をシェルスクリプトにしたものです。(bashを使用) |
boot | 共通の起動プログラムです。指定されたオプションにより、itp14、itp14_demo、itp50、itp50_demoのいずれかを実行します。 |
itp14_demo | Java 1.4の環境でデモ用に実行する場合の起動プログラムです。但し、bootが内部で実行するので、ユーザーが直接実行することはありません。デモ用の場合は、読み込めるファイル数やクラス・インターフェース数に制限があります。 |
itp50_demo | Java 1.5(Java 5)の環境でデモ用に実行する場合の起動プログラムです。但し、bootが内部で実行するので、ユーザーが直接実行することはありません。デモ用の場合は、読み込めるファイル数やクラス・インターフェース数に制限があります。 |
itp.dat | Java 1.4の環境で使用する起動プログラムが含まれているファイルです。使用するには、decodeで解凍する必要があります。解凍後のファイルは圧縮ファイルになっており、itp14、itp50の2つの起動プログラムが含まれています。これら2つのプログラムは、bootが内部で実行するので、ユーザーが直接実行することはありません。 |
parser.dat | プログラムの主要部分が含まれているファイルです。実行する際は、起動プログラムと同じディレクトリにおいておいてください。 |
install.bash | 実行できるように準備をするプログラムです。(bashを使用) |
install_j.bash | 処理はinstall.bashと同じですが、メッセージが日本語で表示されます。(UTF-8以外では文字化けします) |
上記の他に、docsディレクトリが作成されます。このディレクトリには、このファイル(Readme.html)の他、ヘルプドキュメントなどが含まれています。
ダウンロードしたファイルを解凍したら、install_j.bashを実行してください。いくつかのファイルに実行権限を付加し、tmpとlogというディレクトリを作成します。3−4.itp.datの解凍
itp14_demoとitp50_demoはデモ用の起動プログラムで、これを実行することでプログラムは使用できますが、読み込めるファイル数やクラス・インターフェース数に制限があります。制限のない起動プログラムは、itp.datを解凍することで入手できます。itp.datを解凍すると、Java 1.4用とJava 1.5(Java 5)用に2つの制限のない起動プログラムが含まれた圧縮ファイルが現れます。解凍は、decodeを実行してください。指定するオプションは下表の通りです。
オプション | 内容 |
---|---|
-i <解凍対象ファイル名> | このオプションでitp.datを指定します。必須です。 |
-o <解凍後のファイル名> | 解凍後の内容を出力するファイル名を指定します。必須です。 解凍するとtarファイルをgzip形式で圧縮したファイルが現れるので、itp.tgzにしておくのがいいでしょう。 |
-key <ライセンスキー> | ライセンスキーを指定します。ライセンスキーの文字列にはシェルにとって特別な意味を持つ文字が含まれている場合があるのでシングルクォーテーションで囲むことをお勧めします。それでもエラーになる場合は、-keyfileオプションを使用してみてください。 -keyと-keyfileのいずれかを使用してライセンスキーを渡してください。両方のオプションを使用するとエラーになります。 |
-keyfile <ライセンスキーファイル名> | ライセンスキーを書いたテキストファイルを用意し、そのファイル名を指定します。ファイルにはライセンスキー以外は書かないでください。-keyオプションでライセンスキーを渡せない場合に使うオプションです。 |
-h | 使用法の簡単な説明が表示されます。このオプションを使用するときは他のオプションは使用しないでください。 |
decodeを使用して解凍すると、tar形式のファイルをGZIPで圧縮したファイルが現れます。このファイルをgunzipで解凍した後、tarを実行してください。itp14とitp50の2つのファイルが出現します。
実行例>
decode -i itp.dat -o itp.tgz -keyfile keyfile.txt
gunzip itp.tgz
tar -xf itp.tar
ファイル名 内容 itp14 Java 1.4の環境で実行する場合の起動プログラムです。 itp50 Java 1.5(Java 5)の環境で実行する場合の起動プログラムです。
上記2つのプログラムをparser.datと同じディレクトリにおいてください。
後は、Javaのバージョンに従って上記のプログラムを実行すると、プログラムが起動されます。
*decodeからtarまでの一連の作業を自動で行うシェルスクリプト(decode.bash)を用意しています。このスクリプトでは、途中、emacsを起動してライセンスキーを書き込ませる作業がありますので、emacsが起動できる環境で実行してください。
*上記2つの起動プログラムでは、読み込むファイル数やクラス・インターフェース数に制限を設けていませんが、搭載メモリー容量に比べて読み込むクラス・インターフェース数が多すぎると、読み込み時にメモリー不足で、読み込めない状況が発生することがあります。
起動プログラムで解釈されるオプション>
オプション | 意味 |
---|---|
-demo | デモバージョンで起動することを指示します。 |
-jversion <Javaバージョン> | 使用するJDKのバージョンを指定します。下記の3種類のどれかを指定します。 1.4 → JDK 1.4 1.5 → JDK 1.5 5 → JDK 1.5 このオプションは必須です。 |
-jrehome <JREトップディレクトリ> | 使用するJREのトップディレクトリのパスを指定します。JDKではありません。 指定したJREと、jversionで指定したJavaのバージョンが一致していることを確認してください。一致していないときの動作は確認していません。 また、このオプションは省略することが可能です。省略した場合は環境変数PATHの設定値から、javaが存在するパスを検索し、それをもとにJREのトップディレクトリを推測します。 |
-args ... | このオプション以降に指定されているオプションを、そのまま、メインのプログラムに渡します。 -argsの後に、-jversionなどの起動プログラムが解釈するオプションを指定するとエラーになります。 |
-j | 起動プログラムで出力されるメッセージを日本語(UTF-8)で出力します。このオプションを使用するときは、最初に指定してください。このオプションより前では、日本語に切り替わりません。 |
-help | 使用法の簡単な説明を出力して終了します。 |
メインのプログラムで解釈されるオプション>
*下表のオプションは、-args以降に指定してください。
オプション | 形式 | 意味 |
---|---|---|
-f |
-f 読み込むファイル・ディレクトリ |
読み込む対象のファイル名あるいはディレクトリをカンマで列挙します。ファイルはclassファイル、jarファイル、zipファイルになります。ディレクトリを指定すると、そのディレクトリに存在するclassファイル、jarファイル、zipファイルが読み込まれます。また、-dt trueが指定されている場合は、そのディレクトリの下部ディレクトリ全てを対象に読み込ます。 |
-dt |
-dt true あるいは -dt false |
-fオプションでディレクトリが指定されているとき、そのディレクトリの下部ディレクトリ全てを対象にclassファイル、jarファイル、zipファイルを読み込ます。 -fオプションが指定されていないときは、無視されます。 |
-list | -list 読込対象のファイルを記述したファイル名 | 読み込む対象のファイル名を1行に1つ記述したテキストファイルを指定します。#で始まる行はコメント行とみなされます。 |
# class library foo.jar # main class Test.class |
ファイル名 | 内容 |
---|---|
boot.log | 起動プログラムが出力するログファイルです。起動するごとに上書きされますので、過去のログは保存されません。 |
itp_boot_yyyyMMddHHmmss.log | Javaコード部分が起動時に出力するログファイルです。yyyyMMddHHmmssの部分には作成年月日時分秒が入ります。 |
このツールでは解析対象となるのは、読込対象として指定したクラスファイルやJarファイルだけですが、解析したクラスの親クラスなどが読込対象のファイルの中に含まれていない場合、Javaの標準クラスライブラリやクラスパスに設定されたクラスファイルやJarファイルを検索して、見つかれば、読込んで解析します。つまり、以下のことになります。5−2.環境変数
・読込対象として指定したクラスファイルやJarファイルに含まれるクラス・インターフェースは全て読み込まれ解析される。
・Javaの標準クラスライブラリや、クラスパスに設定されたクラスファイルやJarファイルからは、読込対象のクラスファイルやJarファイルで使用されているクラス・インターフェースだけが読み込まれ解析される。
通常クラスパスの環境変数はCLASSPATHですが、当プログラムでは、他にITP_CLASSPATHという環境変数もクラスパスとして扱います。もし、双方が定義されていた場合は、ITP_CLASSPATHのみを扱い、CLASSPATHは無視します。下記のロジックになります。
・ITP_CLASSPATH、CLASSPATH双方が定義されていた場合
ITP_CLASSPATHを参照し、CLASSPATHは無視します。
・ITP_CLASSPATHが未定義で、CLASSPATHが定義されていた場合
CLASSPATHを参照します。
*ITP_CLASSPATH、CLASSPATH双方とも未定義でもエラーにはなりません。
*Javaの標準クラスライブラリはJavaの実行環境で自動的に決まります。CLASSPATH等で別の場所の標準ライブラリを指定した場合の動作は確認していません。
起動プログラムでは、Java実行環境のスタックサイズを可能な限り大きくとって起動を行っています。大体、800MB〜1GBですが、それでも読み込むクラス・インターフェース数が多いとメモリー不足で失敗するときがあります。そのときは、以下の方法を試してみてください。
1)搭載メモリーを増やす
2)搭載メモリーを増やしてもだめな場合は、一部のみを読込対象に指定し、残りをクラスパスに設定する。
*但し、クラスパスに設定したものは、必要なもののみ読み込まれるので、全体の継承ツリーは構築されないことに注意してください。
・注釈(Annotation)データの内容を表示する画面は実装していません。(注釈はJava 1.5で追加された仕様です)
作者への問い合せは、こちらまで。
但し、かならずご返事を差し上げるとは限りませんので、ご了承下さい。
登録商標など
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の登録商標です。
Fedora、Fedora CoreはRed Hat, Inc.の商標です。
本ページに記載されている会社名や商品名は一般に各社の商標です。