我一直在阅读一些答案,他们真的帮了我,但我不明白它的工作正常。情况如下:远程调试不工作,显示错误“行号信息丢失”
将Ant和debug标志建立为true。这是我的build.xml的一部分:
<javac srcdir="${src.dir}" destdir="${build.dir}" debug="true"> <classpath refid="classpath"/> </javac>
然后我做的:
ant -file build.xml jar
上传的.jar到服务器上,通过SSH隧道到达,并启动:
BASEDIR=/path/to/the/base
CP=$BASEDIR/mainApplication.jar:$BASEDIR/lib/someLib1.jar:$BASEDIR/lib/someLib2.jar
MAINCLASS=package.to.the.main.Class
echo classpath is $CP
echo mainclass is $MAINCLASS
java -Xms512m -Xmx1024m -Xnoagent -agentlib:jdwp=transport=dt_socket,address=<port>,server=y,suspend=n -cp $CP $MAINCLASS $BASEDIR/file.properties
SSH隧道:
L<localPort> machine:<port>
Netbeans远程调试。在NetBeans我做
Debug -> Attach Debugger
,而这些是我的选择:Debugger: Java Debugger (JDPA)
Connector: SocketAttach (Attaches by socket to other VMs
Transport: dt_socket
Host: localhost
Port: <localPort>
所以,这个配置后,我得到启动的Netbeans在调试模式,但是当我在任何行设置断点,NetBeans的显示下一个错误信息:
无法提交断点LineBreakpoint OneClass.java: 172,原因:类文件package.to.my.Class中缺少行号信息。 Invalid LineBreakpoint OneClass.java:172
我失踪了什么?或者我做错了什么?
在此先感谢。