自由形式 Java プロジェクトのデバッグターゲットの作成

関連項目

プロジェクトを IDE のデバッガ内で実行するには、プロジェクトの構築スクリプト内に特殊なターゲットが存在する必要があります。そのターゲットは IDE の「プロジェクトをデバッグ」コマンドにマッピングされる必要があります。

プロジェクト用に記述された debug ターゲットがない場合、プロジェクトを最初にデバッグするときに、IDE によって基本的なターゲットが作成されます。あとで、ターゲットを調べ、プロジェクトの特定の要件に合わせてターゲットをカスタマイズできます。

自由形式プロジェクトのデバッグターゲットを作成する手順は、次のとおりです。

  1. 「プロジェクト」ウィンドウでプロジェクトのノードを右クリックし、コンテキストメニューから「主プロジェクトとして設定」を選択します。
  2. 「実行」>「主プロジェクトをデバッグ」を選択します。
  3. 表示された「プロジェクトをデバッグ」ダイアログで「生成」をクリックします。

    debug-nb というターゲットが、ide-targets.xml というファイルに作成されます。作成された ide-targets.xml ファイルは主 build.xml ファイルをインポートする構築スクリプトなので、デバッグターゲットは、主構築スクリプトによって設定または参照されたターゲットおよびプロパティーを利用できます。

    また、このターゲットに対するマッピングは project.xml ファイルに作成されるので、IDE で「プロジェクトをデバッグ」コマンドを選択すれば、いつでもそのターゲットは呼び出されます。ターゲットを最初から作成する場合は、このマッピングもユーザーが自分で作成する必要があります。「メニュー項目へのターゲットの手動マッピング」を参照してください。

  4. 生成された debug-nb ターゲットでは、プロジェクトのすべての要素が適切に考慮されていることを確認してください。特に、ターゲットの <classpath> 引数に、実行クラスパスの項目のすべてが含まれていない場合には、その引数の変更が必要になる場合があります。

ターゲットが作成されると、デバッグを開始できます。デバッグを開始する手順は、次のとおりです。

  1. 主クラスにブレークポイントを設定します。そのためには、ブレークポイントを設定する行の左側の余白をクリックします。ブレークポイントの設定された行は、ピンク色で強調表示されます。
  2. もう一度、プロジェクトのノードを右クリックし、「プロジェクトをデバッグ」を選択します。

    ターゲットが実行され、プログラムの実行が開始します。実行中のターゲットの進捗状況は「出力」ウィンドウに表示され、デバッガのステータスは「出力」ウィンドウの下部にあるステータスバーに表示されます。

代表的な自由形式プロジェクトのデバッグターゲット

作成された Ant ターゲットは次の処理を実行します。

IDE が実行時クラスパスを推測できる生成されたデバッグターゲットは、次のような内容になっています (italicized 項目にはプロジェクトに固有の値が入ります)。

<?xml version="1.0" encoding="UTF-8"?>
<project basedir=".." name="YourProjectName">
<import file="../build.xml"/>
<!-- TODO:edit the following target according to your needs -->
<!-- (more info: http://www.netbeans.org/kb/55/freeform-config.html#debugj2se) -->
<target name="debug-nb">
<nbjpdastart addressproperty="jpda.address" name="NameOfProject" transport="dt_socket">
<classpath path="ClasspathSpecifiedInYourRunTarget"/>
</nbjpdastart>
<java classname="MainClassSpecifiedInRunTarget" classpath="ClasspathSpecifiedInYourRunTarget" fork="true">
<jvmarg value="-Xdebug"/>
<jvmarg value="-Xnoagent"/>
<jvmarg value="-Djava.compiler=none"/>
<jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
</java>
</target>
</project>

実行ターゲットをマッピングしていないか、または、マッピングしていても IDE がプロジェクトのクラスパスまたは主クラスを決定できない場合、生成されたデバッグターゲットには、次の例のように、値をユーザーが自分で記入する「TODO」プレースホルダが含まれています。

<?xml version="1.0" encoding="UTF-8"?>
<project basedir=".." name="YourProjectName">
<!-- TODO:edit the following target according to your needs -->
<!-- (more info: http://www.netbeans.org/kb/55/freeform-config.html#debugj2se) -->
<target name="debug-nb">
<path id="cp">
<!-- TODO configure the runtime classpath for your project here: -->
</path>
<nbjpdastart addressproperty="jpda.address" name="NameOfProject" transport="dt_socket">
<classpath refid="cp"/>
</nbjpdastart>
<!-- TODO configure the main class for your project here: -->
<java classname="some.main.Class" fork="true">
<classpath refid="cp"/>
<jvmarg value="-Xdebug"/>
<jvmarg value="-Xnoagent"/>
<jvmarg value="-Djava.compiler=none"/>
<jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
</java>
</target>
</project>

実行時クラスパスを指定するには、path 要素内に pathelement 要素を挿入し、それらの要素が、クラスパス内の項目が格納されているディレクトリを指示するようにします。たとえば、pathelementlocation 属性を使用して、プロジェクトのディレクトリからのクラスパス項目の相対位置を指定できます。通常、プロジェクトのディレクトリは、プロジェクトの build.xml ファイルが格納されているディレクトリです。次に例を示します。

<path id="cp">
    <pathelement location="libs">  
    <pathelement location="build">
</path>

メニュー項目へのターゲットの手動マッピング

IDE にターゲットを作成させる場合、IDE はターゲットと IDE コマンドのメニュー項目との間のマッピングを自動的に行います。ただし、ターゲットを手動で作成した場合は、そのマッピングも手動で作成する必要があります。

外部 Ant スクリプト内のターゲットに「プロジェクトをデバッグ」コマンドをマッピングする

  1. プロジェクトの project.xml ファイルを開き、次の行を <ide-actions> に追加します。
      <action name="debug">
            <script>path_to_Ant_script</script>
            <target>target_name</target>
            </action> 
  2. Add the command to the project node's contextual menu, by adding the following line to the <context-menu> target:

      <ide-action name="debug"/>
  3. <context-menu> ターゲットに次の行を追加して、プロジェクトのノードのコンテキストメニューにこのコマンドを追加します。

      <ide-action name="debug"/>

    IDE は「プロジェクトをデバッグ」アクションを、プロジェクトの Ant スクリプト内の指定されたターゲットにマッピングします。

トラブルシューティング

デバッグターゲットの作成とデバッガの起動には成功したが、デバッガがブレークポイントで停止しない場合は、IDE でデバッグ情報が不足しているか、またはソースのある場所が認識されていない可能性があります。詳細は、「自由形式プロジェクトのデバッグの概要」を参照してください。

自由形式プロジェクトの構成については、次の場所に説明があります。

関連項目
自由形式プロジェクトの概要
自由形式 Web プロジェクトのデバッグターゲットの作成
IDE コマンドへの Ant ターゲットのマッピング
独立した Ant スクリプトへの IDE ターゲットの保存

著作権と商標について