Java 開発ツール (JDT) - リリース情報

1.0 概要
2.0 既知の問題および制限
   2.1 パッケージまたはクラス名で非 Latin-1 文字を使用した Java プログラムの実行
   2.2 デバッグ属性の欠落
   2.3 ブレークポイントの設定
   2.4 ホット・コード置換の使用
   2.5 スクラップブック
   2.6 遅い接続でのデバッグ
   2.7 インスペクション済みの値の更新
   2.8 I/O (入出力) を実行するネイティブ・メソッドのステップオーバー
   2.9 定数フィールド参照の検索
   2.10 ビルド・クラスパスの外の Java コンパイル単位
   2.11 Linux 上の IBM 1.3 JVM で稼働している VM とプロセスの終了 
   2.12 読み取り専用ファイル変更のアクション
   2.13 Java コードのテンプレート
   2.14 インポートの編成とデフォルト・パッケージからのインポート
   2.15 フィールドにおける「Javadoc の追加」アクション
   2.16 Java エディター内の Javadoc 吹き出しヘルプ
   2.17 新規の Java クラスで > の代わりに表示される HTML コード >
   2.18 プロジェクト名に GB18030 文字が含まれるプロジェクトでクラスを実行またはデバッグできない
   2.19 スタック・オーバーフローをデバッグできない
   2.20 評価の制限   
   2.21 ビルド・クラスパスの外のブレークポイント  
   2.22 クイック・フィックスとデフォルト・パッケージからのインポート   
   2.23 Java エレメントを表示しているビューで、リンクされているリソースの切り取り、コピー、貼り付けができない
   2.24 JRE システム・ライブラリー・コンテナーのエレメントに対して、Java の作業セットが正しく動作しない   
   2.25 名前に GB18030 文字を含むパッケージに対して javadoc を生成できない
   2.26 上書きモードでリンク・エディットが正しく動作しない
   2.27 最後の行がコメント行の場合、catch ブロック・コード生成テンプレートは、改行で終わる必要がある
   2.28 クラス・ファイル・エディターを開く際の問題

1.0 概要

ここでは Java 開発ツールについて既知の問題および制限に関する情報が記載されています。

2.0 既知の問題および制限

2.1 パッケージまたはクラス名で非 Latin-1 文字を使用した Java プログラムの実行

パッケージまたはクラス名内で、非 Latin-1 文字付き Java プログラムを実行するとき、java.lang.NoClassDefFoundError を受け取る可能性があります。 この問題を回避するには、クラス・ファイルを JAR ファイルとしてパッケージし、プログラムを直接ファイル・システムからではなく JAR から実行してください。 

2.2 デバッグ属性の欠落

デバッガーで行番号とローカル変数を表示するには、 クラス・ファイルをデバッグ属性を使用してコンパイルする必要があります。 かなりの頻度でクラス・ライブラリー (例: rt.jar) が完全なデバッグ属性がないままコンパイルされます。このため、これらのクラスのローカル変数とメソッド引き数がデバッガーからは不可視になります。

2.3 ブレークポイントの設定

通常、デバッガーでは実行可能でないコード行 (コメント、ブランク行など) にブレークポイントを置くことは許可されません。 ただし、デバッガーが、 実行不可能なコード行でのブレークポイントを許可する場合がいくつかあります。例えば、初期化指定子を含まない変数宣言上にブレークポイントを置く場合です。実行中 (デバッグ可能) の VM で、実行可能行の上に正常にインストールされた使用可能ブレークポイントはチェックマーク付きで表示されることに注意してください。 チェックマークなしで表示されたブレークポイントは、実行中 (デバッグ可能) の VM ではインストールされません。

2.4 ホット・コード置換の使用

ホット・コードの置き換えは JDK 1.4.x VM、および IBMR J9 VM でサポートされています。 ホット・コード置換は、クラスの形状に影響をしない変更に制限されています。 つまり、既存のメソッド内の変更はサポートしますが、メンバーの追加や除去はサポートしません。

JDK 1.4.0 VM でのホット・コード置換 およびステッピングは信頼性に問題があります。  

2.5 スクラップブック

スクラップブック・ページ内のブレークポイント設定はサポートされていません。

スクラップブックの中でコードが実行されて System.exit(int) を直接または間接に呼び出す場合、評価は完了せずに、 com.sun.jdi.VMDisconnectedException のスタック・トレースがスクラップブック・エディターに表示されます。

評価の実行中にスクラップブック・ページを終了すると、com.sun.jdi.VMDisconnectedException がスクラップブック・エディター内に表示されます。

2.6 遅い接続でのデバッグ

グローバル Java デバッグ設定はデバッガー・タイムアウトを指定します。デバッグ・タイムアウトはデバッガーが VM に要求を出した後、宛先 VM からの応答を待ち受ける最大時間値です。 接続が遅い場合は、この値を増やす必要があります。タイムアウトの値は「Java」>「デバッグ」設定のページで編集できます。タイムアウトの値の変更は、現在実行中ではなく、この後に起動する VM から有効になります。

2.7 インスペクション済みの値の更新

デバッガー内で評価された式の結果をインスペクションする際、表示された結果は、それが評価された時点での式の結果である点に注意する必要があります。 例えば、単純な整数カウンター (プリミティブ・データ型) をインスペクションするとき、式ビューで表示される値は、式が評価されたときの値です。プログラム実行中の場合はカウンターが変わるので、インスペクションの結果は変わりません (ビューは変数に結合されている値は表示せず、式の値を表示し、基本的なデータ型の値は変わらないため)。 ただし、式がオブジェクトを生成する場合、 そのオブジェクトのフィールドは、実行中のプログラム内で変更される際に、インスペクター内で更新されます (オブジェクト内で、フィールドにバインドされた値は変更される場合があるため)。

2.8 I/O (入出力) を実行するネイティブ・メソッドのステップオーバー

デバッガーが System.out または System.err に I/O (入出力) を行うネイティブ・メソッドのステップオーバーを 行う場合は、ネイティブが出力バッファーでフラッシュをしない限り、出力は直ちには現れません。

2.9 定数フィールド参照の検索

検索はバイナリーの中の定数フィールドに参照を見つけられません。Java 言語仕様は、 定数フィールド値がクラス・ファイルのバイトコードにインラインになるようにし、フィールド参照のトレースは行わないように定めているためです。

2.10 ビルド・クラスパスの外の Java コンパイル単位

コンパイル問題を持つコンパイル単位が Java ビルド・クラス・パスの外側に移動されると、Java 問題を永続的に保持したままになります (コンパイル問題のリストは、再度コンパイルされることはないため最新表示されません)。 *.java ファイルを別のファイル拡張子サフィックスを持つ名前に変更しても、同じ問題が発生します。 

2.11 Linux 上の IBM 1.3 JVM で稼働している VM とプロセスの終了 

起動、デバッグ・ターゲットなど、Linux プラットフォーム 上の IBM 1.3 JVM で実行しているデバッグ・ターゲットに 関連付けられているシステム・プロセスを終了しようとしても、関連付けられているデバッグ・ターゲットに 中断しているスレッドがある場合は、システム・プロセスを終了できません。デバッグ UI からそのような デバッグ・ターゲットを除去するには、デバッグ・ビューのポップアップ・メニューから、「終了して除去」を選択します (または、ショートカットの "delete" キーを使用します)。OS の関連システム・プロセスが 適切に終結処理しない場合があります。デバッグ・ターゲットに中断しているスレッドがない場合は、正しく終了します。

2.12 読み取り専用ファイル変更のアクション

ソース」メニュー上のアクション、(例: 「Getter と Setter の生成」) はファイルが読み取り専用のときは常に使用不可になります。 リポジトリーのプロバイダーが変更時にファイルの自動的なチェックアウトをサポートしていても、現在ではこのことが当てはまります。

2.13 Java コードのテンプレート

${CURSOR} を Java コード・テンプレート (「ウィンドウ (Window)」 > 「設定 (Preferences)」 > 「Java」 > 「テンプレート (Templates)」) のコメントで使うことはできません。 

2.14 インポートの編成とデフォルト・パッケージからのインポート

インポートの編成は、デフォルト・パッケージからのインポートは処理しません。 デフォルト・パッケージからのインポートは JDK 1.4 ではすでにサポートされなくなっていることに注意してください。 

2.15 フィールドにおける「Javadoc の追加」アクション

Javadoc の追加」アクションはフィールドでは機能しません。

2.16 Java エディター内の Javadoc 吹き出しヘルプ

Java エディターで ID 上にマウス・カーソルを合わせたときに表示される Javadoc 吹き出しヘルプ は、Javadoc コメント内部ではリンクを適切に処理しません。 

2.17 新規の Java クラスで > の代わりに表示される HTML コード >

新規の Java クラスを作成すると、次のようなコメントが表示されます。

この生成ファイルのテンプレートを変更する場合は、「ウィンドウ」>「設定」>「Java」>「コード生成」>「コードおよびコメント」に移動してください。

より大きい (>) 記号それ自体の代わりに、その記号を表す HTML コードが使用されます。上のコメントは、次のようになります。

この生成ファイルのテンプレートを変更する場合は、「ウィンドウ」>「設定」>「Java」>「コード生成」>「コードおよびコメント」に移動してください。

2.18 プロジェクト名に GB18030 文字が含まれるプロジェクトでクラスを実行またはデバッグできない

指定されたコマンド行に GB18030 文字が含まれている場合、 ほとんどのクラス・ライブラリーは、(java.lang.Runtime.exec(...) を使用した) システム・プロセスの作成を適切にサポートしません。これは、デバッガーが生成するコマンド行に GB18030 文字が含まれている場合は、デバッガーはアプリケーションを起動できない、ということを意味しています。

2.19 スタック・オーバーフローをデバッグできない

デバッグ・セッションが (例外ブレークポイントによって) java.lang.StackOverflowError 例外で中断した場合、デバッガーがターゲットの JVM からデバッグ情報を全く取り出せないことがあります。同様に、このブレークポイントを通過するターゲット JVM とデバッガーの間の対話は信頼できないことがあります。

2.20 評価の制限

デバッガーは、ターゲット JVM でスレッドを使用して、評価 (ユーザーが要求した明示的な評価、および「変数」ビューにおける toString() の呼び出しなどの暗黙的評価の両方) を実行します。 Java デバッグ・インターフェース (JDI) は、評価が実行されるスレッドをユーザー・イベント (ブレークポイントまたはステップ要求) によって中断するよう要求します。 中断操作によって中断されたスレッドでは、評価を実行することはできません。同様に、 個々のスレッドだけではなく、JVM も中断するようブレークポイントが構成されている場合、 ブレークポイントに遭遇しなかったスレッドは評価を実行することができません。評価を実行するのに有効な状態になっていないスレッドで評価を行おうとすると、「メソッド呼び出しを行うには、ステップまたはブレークポイントでスレッドを中断する必要があります」という内容のエラー・メッセージが表示されます。

2.21 ビルド・クラスパスの外のブレークポイント

ブレークポイントを作成できるのは、プロジェクトのビルド・クラスパスに含まれる Java エレメントに対してだけです。 Java デバッガーは、ブレークポイントに関連付けられている Java エレメントがプロジェクトのビルド・パスから除去されると、自動的にそのブレークポイントを除去します。ただし、ビルド・パスが変更されたときに、Java デバッグ・プラグインが ロードされていなければ、そのようなブレークポイントはワークスペースに残り、ユーザーがブレークポイント・ビューからそのブレークポイントに関連付けられているファイルに移動しようとしたときに、エラーが発生する可能性があります。

2.22 クイック・フィックスとデフォルト・パッケージからのインポート

クイック・フィックスは、デフォルト・パッケージからのインポートを行いません。デフォルト・パッケージからのインポートは JDK 1.4 ではすでにサポートされなくなっていることに注意してください。

2.23 Java エレメントを表示しているビューで、リンクされているリソースの切り取り、コピー、貼り付けができない

切り取り、コピー、および貼り付けの各アクションは、パッケージ・エクスプローラーなどの Java エレメントを表示するビューに表示される、リンクされたファイルおよびフォルダーには機能しません。この問題を回避するには、これらのアクションをナビゲーター・ビューから使用します。

2.24 JRE システム・ライブラリー・コンテナーのエレメントに対して、Java の作業セットが正しく動作しない

JRE システム・ライブラリー・コンテナーのエレメントだけで構成される作業セットを、フィルターとしてパッケージ・ビューに適用すると、パッケージ・エクスプローラーが空になることがあります。

2.25 名前に GB18030 文字を含むパッケージに対して javadoc を生成できない

指定されたコマンド行に GB18030 文字が含まれている場合、 ほとんどのクラス・ライブラリーは、(java.lang.Runtime.exec(...) を使用した) システム・プロセスの作成を適切にサポートしません。Javadoc は、JDK に付属している Javadoc 実行可能ファイルを使用して作成されるため、パッケージ名またはクラス名に GB18030 文字が含まれていると、Javadoc の生成に失敗します。

2.26 上書きモードでリンク・エディットが正しく動作しない

リンク・エディットは、単一のコンパイル単位内のエレメントの名前変更、および同一のテンプレート変数が複数出現するテンプレートに使用されます。 上書きモードでは、リンク・エディットは正しく動作しません。

2.27 最後の行がコメント行の場合、catch ブロック・コード生成テンプレートは、改行で終わる必要がある

catch ブロック・コード生成テンプレートの最後の行がコメント行の場合、その行は改行で終わる必要があります。そうでないと、閉じ中括弧はコメント行で終わることになり、コンパイル・エラーが発生します。

2.28 クラス・ファイル・エディターを開く際の問題

プラグイン開発 (Plug-in Development)」>「Java ビルド・パス制御 (Java Build Path Control)」設定ページで、「クラスパス・コンテナーを使用する (Use classpath containers)」が 有効になっている場合、「必須のプラグイン・エントリー (Required plug-in entries)」コンテナー内の JAR に含まれているクラス・ファイルに対して、 クラス・ファイル・エディターを開くことができない場合があります。 この問題を回避する 1 つの方法は、パッケージ・エクスプローラーでこのクラス・ファイルを展開することです。これにより、クラス・ファイルの構造が、エディターで表示されるのと同じように表示されます。JAR に対してソース・コードの ZIP ファイルが使用可能であれば、その JAR ファイルにソースを添付することもできます。

「必須のプラグイン・エントリー」コンテナー内の JAR にソースを添付するには、次のステップを実行します。

  1. パッケージ・エクスプローラーでプロジェクトを選択し、コンテキスト・メニューから、「プロジェクト」>「プロパティー」を開く。
  2. Java ビルド・パス」ページを選択する。
  3. ライブラリー」ページに移動する。
  4. 「必須のプラグイン・エントリー」項目を展開する。
  5. 当該 JAR の項目を展開する。
  6. ソースの添付」を選択し、「編集」をクリックする。
  7. 対応するソースの ZIP ファイルの場所を入力する。
  8. OK」をクリックして、確認する。

メインの README ファイルに戻る