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:
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 "Debug Project" 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.
Depois de o destino ser criado, você pode iniciar a depuração. Para iniciar a depuração:
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.
O destino Ant gerado faz o seguinte:
Um destino de depuração gerado em que o IDE é capaz de deduzir que o 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="Nomedoseuprojeto">
<import file="../build.xml"/>
<!-- TODO: edite o destino seguinte de acordo com as suas necessidades -->
<!-- (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>
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="Nomedoseuprojeto">
<!-- TODO: edite o destino seguinte de acordo com as suas necessidades-->
<!-- (mais informações: http://www.netbeans.org/kb/55/freeform-config.html#debugj2se) -->
<target name="debug-nb">
<path id="cp">
<!-- TODO configure o classpath de tempo de execução do seu projeto aqui: -->
</path>
<nbjpdastart addressproperty="jpda.address" name="Nomedoprojeto" transport="dt_socket">
<classpath refid="cp"/>
</nbjpdastart>
<!-- TODO configure a classe principal do seu projeto aqui: -->
<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>
Para especificar o classpath de tempo de execução, insira elementos pathelement no elemento path e aponte-os para os diretórios que contêm os itens do classpath. Por exemplo, você pode usar o atributo location de pathelement para especificar a localização dos itens do 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>
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:
<action name="debug">
<script>path_to_Ant_script</script>
<target>target_name</target>
</action> <ide-action name="debug"/>
O IDE mapeia a ação de Depurar projeto para o destino especificado no script Ant do projeto.
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 as fontes. 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: