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 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.
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 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>
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>caminho_para_script_Ant</script> <target>nome_destino</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 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: