Criando um destino de depuração para um projeto Java de forma livre

Consulte também 

Para executar um projeto no depurador do IDE, você precisa ter um destino especial no script de construção do projeto. Esse destino precisa ser mapeado para o comando Depurar projeto do IDE.

Se não houver um destino debug escrito para o projeto, o IDE se oferecerá para gerar um destino básico quando você tentar depurar o projeto pela primeira vez. Você pode inspecionar o destino e personalizá-lo conforme os requisitos específicos do projeto.

Para criar um destino de depuração para um projeto de forma livre:

  1. Na janela Projetos, clique com o botão direito do mouse no nó do projeto e escolha Definir como projeto principal.
  2. Escolha Executar > Depurar projeto principal.
  3. Na caixa de diálogo Depurar projeto exibida, clique em Gerar.

    Um destino chamado debug-nb é criado em um arquivo chamado ide-targets.xml. O arquivo ide-targets.xml gerado é um script de construção que importa o arquivo build.xml principal, para que o destino de depuração possa tirar vantagem dos destinos e propriedades definidos ou referenciados pelo script de construção principal.

    Além disso, é criado um mapeamento para esse destino no arquivo project.xml para que o destino seja chamado sempre que você escolher o comando Depurar projeto no IDE. Se você escrever o destino partindo do zero, será necessário criar esse mapeamento também. Consulte Mapeando manualmente um destino para um item de menu.

  4. Verifique se o destino debug-nb gerado leva corretamente em consideração todos os elementos do projeto. Em particular, pode ser necessário modificar o argumento <classpath> no destino, caso ele não inclua todos os itens na classpath de execução.

Depois de o destino ser criado, você pode iniciar a depuração. Para iniciar a depuração:

  1. Defina um ponto de interrupção na classe principal. Para isso, clique na margem esquerda da linha em que deseja definir o ponto de interrupção. A linha com o ponto de interrupção é realçada em rosa.
  2. Novamente, clique com o botão direito do mouse no nó do projeto e escolha Depurar projeto.

    O destino deve ser executado e iniciar a execução do programa. O progresso do destino que está sendo executado é mostrado na janela Saída e o status do depurador é mostrado na barra de status na parte inferior da janela Saída.

Um típico destino de depuração de projeto de forma livre

O destino Ant gerado faz o seguinte:

Um destino de depuração gerado em que o IDE é capaz de deduzir que a classpath de tempo de execução é parecida com a seguinte (em que itens em itálico teriam valores específicos do projeto):

<?xml version="1.0" encoding="UTF-8"?>
    <project basedir=".." name="Nome do projeto">
    <import file="../build.xml"/>
    <!-- TODO: edite o destino seguinte conforme a necessidade -->
    <!-- (more info: http://www.netbeans.org/kb/55/freeform-config.html#debugj2se) -->
    <target name="debug-nb">
    <nbjpdastart addressproperty="jpda.address" name="Nome do projeto" transport="dt_socket">
    <classpath path="Classpath especificada no destino de execução"/>
    </nbjpdastart>
    <java classname="Classe principal especificada no destino de execução" classpath="Classpath especificada no destino de execução" 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>

Se você não tiver um destino de execução mapeado ou se o IDE não conseguir determinar de outra forma o caminho de classe ou a classe principal do projeto, o destino de depuração gerado incluirá espaços reservados "TODO" para que você preencha esses valores, como no exemplo abaixo.

<?xml version="1.0" encoding="UTF-8"?>
    <project basedir=".." name="Nome do projeto">
    <!-- TODO: edite o destino seguinte conforme a necessidade -->
    <!-- (more info: http://www.netbeans.org/kb/55/freeform-config.html#debugj2se) -->
    <target name="debug-nb">
    <path id="cp">
    <!-- TODO configure a classpath de tempo de execução para o projeto aqui: -->
    </path>
    <nbjpdastart addressproperty="jpda.address" name="Nome do projeto" transport="dt_socket">
    <classpath refid="cp"/>
    </nbjpdastart>
    <!-- TODO configure a classe principal do projeto aqui: -->
    <java classname="alguma.classe.principal" 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>

Para especificar a classpath de tempo de execução, insira elementos pathelement no elemento path e aponte-os para os diretórios que contêm os itens da classpath. Por exemplo, você pode usar o atributo location de pathelement para especificar a localização dos itens da classpath em relação ao diretório do projeto. O diretório do projeto é geralmente o que contém o arquivo build.xml do projeto. Segue-se um exemplo:

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

Mapeando manualmente um destino para um item de menu

Ao gerar um destino, o IDE automaticamente fornece o mapeamento entre o destino e o item de menu do comando do IDE. Entretanto, se você criou o destino manualmente, também será necessário criar o mapeamento manualmente.

Para mapear o comando Depurar projeto para um destino em um script Ant externo:

  1. Abra o arquivo project.xml do projeto e adicione o seguinte a <ide-actions>:
      <action name="debug">
            <script>caminho_para_script_Ant</script>
            <target>nome_destino</target>
            </action> 
  2. Adicione o comando ao menu contextual do nó do projeto, acrescentando a seguinte linha no destino <context-menu>:

      <ide-action name="debug"/>

    O IDE mapeia a ação de Depurar projeto para o destino especificado no script Ant do projeto.

Solução de problemas

Se você criou com êxito um destino de depuração e iniciou o depurador, mas o depurador não pára nos pontos de interrupção, é provável que faltem no IDE informações sobre a depuração ou o conhecimento de onde estão os códigos-fonte. Consulte Sobre a depuração de projetos de forma livre para obter mais informações.

Para obter um guia completo de configuração de projetos de forma livre, consulte:

Consulte também
Sobre os projetos de forma livre
Criando um destino de depuração para um projeto da Web de forma livre
Mapeando um destino Ant para um comando do IDE
Armazenando destinos do IDE em um script Ant separado

Notificações legais