2017-07-26 45 views
0

我这里有一个非常简单的项目https://github.com/sherry-ummen/javadebuggingnotworkingJava远程调试不适用于Eclipse或IntelliJ。帮助需要

我想是因为我需要它做了一个类似的情况,所以我想用一个简单的想出来让远程调试工作。

我已经把一个破发点,在第12行没有Maven构建创建罐子,也可以设置远程调试配置,这enter image description here
并开始调试我用下面的命令

的java -Xdebug -Xrunjdwp:transport = dt_socket,address = 8998,server = y -jar my-debug-test-0.0.1-SNAPSHOT.jar

现在当进程正在侦听时,我转到IntelliJ并按远程调试配置那么我在Intellij输出窗口上得到以下消息而不会触及断点。

连接到目标虚拟机,地址: '本地主机:8998',运输: '插座'

从目标VM断开,地址: '本地主机:8998',运输: '插座'

而且还在那里,我开始了java程序得到以下消息停止现在

C:\Users\sherry.ummen\eclipse-workspace\my-debug-test\target>java -Xdebug - 
Xrunjdwp:transport=dt_socket,address=8998,server=y -jar my-debug-test-0.0.1- 
SNAPSHOT.jar 
Listening for transport dt_socket at address: 8998 
no main manifest attribute, in my-debug-test-0.0.1-SNAPSHOT.jar 

控制台窗口,我真的不明白为什么过b这样做,我看不到我的断点。这可能是一个非常愚蠢的问题,但我的Java开发技能非常有限,所以对我来说这是一个头痛的问题。

回答

1

您的情况IDEA或Eclipse已成功连接到该进程。 问题是,在你的jar中没有定义的主类(应该在清单中定义)。 所以java进程会立即停止,因为它没有主要的类来运行。

在罐子里,META-INF的Filder

,应该有一个文件名MANIFEST.MF,在该文件中应该有这样的

Main-Class: mypackage.MyMainClass 
+0

一个条目非常感谢你。对不起,延迟回复,因为我正在弄清楚如何在POM文件中做到这一点。补充说它现在起作用了。 – Sherry