不是调试对象,也不是正在侦听要附加的调试器

时间:2015-03-04 22:25:18

标签: java debugging netbeans debian

我想将调试器附加到名为Mamute的github项目中。 run.sh连接应用程序。 cat run.sh读到:

#!/bin/bash

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

MAMUTE_DIR=$SCRIPT_DIR

TIMESTAMP=BUILD_TIMESTAMP

WEB_INF=${SCRIPT_DIR}/WEB-INF

java -cp ${WEB_INF}/classes/:${WEB_INF}/lib/* \
    -Ddeploy.timestamp=$TIMESTAMP \
    -Dvraptor.webappdir=${MAMUTE_DIR} \
    ${MAMUTE_OPTS} \
    br.com.caelum.vraptor.server.Main \
    not-grunt

我不知道“java -cp XXX”是什么意思。我知道这是一个网络应用程序所以我试图像我在使用visual studio在Windows中调试东西时那样附加到PID。

在使用“gksu / usr / bin / netbeans”启动netbeans后,我转到顶层菜单>调试器>附加调试器>

  • Java调试器(JPDA)
  • 流程附加(通过pid)
  • Transport = local
  • PID = XXXX(通过运行“lsof -i:8080”获得的XXXX)

单击“附加”。错误:

  

不是调试对象或者没有监听要附加的调试器。

我正在运行Debian。

1 个答案:

答案 0 :(得分:4)

在这里,您可以在调试模式下运行mamut,将以下选项添加到run.sh

中的java命令
-Xdebug -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n

然后,您必须在netbeans中选择dt_socket传输选项附加调试器。

请注意,如果suspend为'n',则应用程序将立即启动,并且不会等待调试器附加到它。如果是'y',申请将被暂停,直到您附上该申请。