Java Bean のデバッグのための拡張オプション

通常の開発では、Visual Editor の各インスタンスが使用する仮想マシン (VM) に注意を払う必要はありません。 ただし、上級ユーザーであれば、VM の System.out または System.err に送られたメッセージが、ワークスペース内の .metadata ディレクトリーの .log ファイルに書き込まれるようにワークベンチを構成することができます。

Java™ Bean の実行に使用される仮想マシン (VM) は、ワークベンチが実行されている VM と同じものではありません。Visual Editor のインスタンスごとに、別個の VM が作成されます。この VM のクラスパスは、プロジェクトの Java のビルド・パス内のエントリーになるよう設定されます。 Visual Editor が開いているときに Java のビルド・パスが変更された場合は、開いているすべての Visual Editor を閉じてから再度開き、更新されたビルド・パスを反映する必要があります。

ワークベンチの開始時に、例えば、次のようなテキスト・ファイルを指す -DEBUG オプションを指定できます。

-DEBUG file:/c:/temp/options.txt

デバッグ・ファイルには、Visual Editor によって読み取られるエントリーが含まれています。 ファイルに以下の行が含まれていると、System.out または System.err に送信されたメッセージはすべてコンソールに表示されます。

org.eclipse.jem.proxy/remote/debug/vmtraceout=true

Visual Editor が使用する VM からのコンソール出力を表示するだけでなく、VM をデバッグ・モードで開始して、リモート・デバッグを実行できます。 このシナリオは最適化されていないので、Visual Editor の今後のバージョンで変更される可能性があります。ただし、設計時に Java Bean のデバッグを実行しなければならない場合は文書化されます。 リモート・デバッグを実行するには、2 つのワークベンチを実行しておく必要があります。1 つはデバッグ対象の Java Bean を持つワークベンチ、もう 1 つはソケット・ベースのリモート・デバッグを実行できるワークベンチです。2 番目のワークベンチは、同じマシン上でも異なるマシン上でも実行することができます。Visual Editor の VM のデバッグを使用可能にするために、-DEBUG ファイルに以下の行を含める必要があります。

org.eclipse.jem.proxy/remote/debug/debugvm=true

Visual Editor は、VM を始動するたびに、デバッグ・モードで始動するかどうかを尋ねてきます。

上記のダイアログは、プロジェクト「テスト」内のクラス HelloFrame.java を、Visual Editor を使って開く際のものです。「はい」を選択するか、コンソールで「Y」を入力して Enter キーを押すと、VM は -Xdebug によってソケット・コネクターを使用して中断モードで開始されます。 フリー・ポートが割り振られます。 次に、その番号が通知されます。

次のステップはリモート・デバッガーをポート番号 7078 を接続することです。Visual Editor を実行しているワークベンチのインスタンスは、リモート・デバッガーが接続されている間は中断状態になるので、他のアプリケーションからデバッガーを使用する必要があります。 他のアプリケーションがワークベンチの別のインスタンスである場合、メニュー・オプション「デバッグ」>「デバッグ」 を使用して、新規のリモート Java アプリケーション構成を作成することで、リモート・デバッグを開始できます。

以前、stdout へ書き込まれたポート番号 (この場合は 7078) を入力します。 デバッガーが別のマシン上にある場合は、デバッグされるワークベンチを実行しているマシンの IP アドレスを「ホスト」フィールドに入力する必要があります。リモート・デバッガーを開始するには、「デバッグ」をクリックし、デバッグされるワークベンチの標準入力コンソールに「y」を入力します。

Visual Editor のそれぞれのインスタンスが使用する VM のデバッグを求めるプロンプトが表示されるだけでなく、 プロジェクト自体をデバッグするよう指示するメッセージも表示されます。

Do you want to start the remote vm (Project (Test)-Beaninfo) in debug mode? (Enter Y or N):

これは、イントロスペクションに使用され、java.beans.Introspector が実行される VM の場合であり、特定の Java ソース・ファイル名を指定しないため、Visual Editor の VM とは区別できます。 この VM は、プロジェクト内の Java Bean にいずれかの Bean 情報が最初に必要になったときに始動され、 プロジェクトが開いている限りアクティブなままです。このプロジェクトをデバッグすると、Java Bean がイントロスペクトされるにつれて BeanInfo クラスのコードをステップスルーして、分析できます。 イントロスペクションは、イントロスペクションが使用される各プロジェクトの Java Bean クラスごとに行われます。結果はパフォーマンスに役立つようにキャッシュに保持されます。プロジェクト用に保持されている BeanInfo 情報のキャッシュをクリアする必要がある場合は、ポップアップ・メニューからプロジェクトを閉じてから、開きます。


フィードバック