Eu tenho uma aplicação java a correr na máquina linux. Eu executo a aplicação java usando o seguinte:
java myapp -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000, suspend=n
Eu abri a porta 4000 para TCP nesta máquina Linux. Eu uso o eclipse da máquina Windows XP e tento conectar-me a esta aplicação. Eu também abri a porta no windows.
Ambas as máquinas estão na LAN mas eu posso'parece que não consigo ligar o depurador à aplicação Java. O que eu estou fazendo de errado?
Edit: Notei que algumas pessoas estão a cortar e a colar a invocação aqui. A resposta que eu dei originalmente era relevante apenas para a OP. Aqui's um estilo de invocação mais moderno (incluindo o uso da porta mais convencional de 8000):
java -agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=n <other arguments>
A resposta original é a seguinte.
Experimenta isto:
java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n myapp
Dois pontos aqui:
runjdwp
.Para JDK 1.3 ou anterior :
-Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6006
Para JDK 1.4
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6006
Para o mais novo JDK :
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6006
Por favor, altere o número da porta de acordo com as suas necessidades.
A partir de 5.0 a opção -agentlib:jdwp é utilizada para carregar e especificar opções para o agente JDWP. Para versões anteriores à 5.0, o agente -Xdebug e -Xrunjdwp são usadas opções (a implementação 5.0 também suporta as opções -Xdebug e -Xrunjdwp mas a opção mais recente -agentlib:jdwp é preferível como o agente JDWP na 5.0 usa a interface JVM TI para o VM em vez da interface JVMDI mais antiga)
Mais uma coisa a notar, da documentação da interface da Ferramenta JVM:
a JVM TI foi introduzida no JDK 5.0. A JVM TI substitui o Java Virtual Machine Profiler Interface (JVMPI) e o Java Virtual Machine Debug Interface (JVMDI) que, a partir do JDK 6, não são mais fornecidos.
Passos:
Consulte Guia passo a passo sobre depuração remota Java para obter detalhes completos.