通常の開発では、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/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/debug/debugvm=true
Visual Editor は、VM を始動するたびに、デバッグ・モードで始動するかどうかを尋ねてきます。 このメッセージはダイアログに書き込まれるか、-DEBUG ファイルにエントリー org.eclipse.jem.proxy/debug/ioconsole=true が含まれている場合には System.out に書き込まれます。
メッセージを System.out へ書き込むかどうかを、「Y」または「N」の入力で質問され、System.in を待機します。
Do you want to start the remote vm (Project (Test)-VM for HelloFrame.java) in debug mode? (Enter Y or N):
上記のダイアログは、プロジェクト「テスト」内のクラス HelloFrame.java を、Visual Editor を使って開く際のものです。「はい」を選択するか、コンソールで「Y」を入力して Enter キーを押すと、VM は -Xdebug によってソケット・コネクターを使用して中断モードで開始されます。 フリー・ポートが割り振られます。 次に、その番号が通知されます。
メッセージは System.out へ書き込まれ、System.in への入力を待機します。
You must now attach the debugger to port number 7078. Enter 'y' when the debugger is attached. The program will not continue properly without the debugger being attached. Press 'n' if you could not connect the debugger. This will still cause an error, but it will clean up better. Enter 'y' or 'n':
次のステップはリモート・デバッガーをポート番号 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 情報のキャッシュをクリアする必要がある場合は、ポップアップ・メニューからプロジェクトを閉じてから、開きます。
親トピック: Visual Editor でのテストおよびデバッグ