gpt4 book ai didi

Java 远程调试不适用于 Eclipse 或 IntelliJ 。需要帮助

转载 作者:行者123 更新时间:2023-12-02 12:30:01 25 4
gpt4 key购买 nike

我这里有一个非常简单的项目https://github.com/sherry-ummen/javadebuggingnotworking

我正在尝试进行远程调试,因为我需要它来处理类似的情况,所以我想用一个简单的方法来尝试一下。

我在第 12 行放置了一个断点。maven 是否构建来创建 jar 并将远程调试配置设置为此 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 输出窗口上收到以下消息,而无需命中断点。

已连接到目标虚拟机,地址:“localhost:8998”,传输:“socket”

与目标虚拟机断开连接,地址:“localhost:8998”,传输:“socket”

而且在我启动的控制台窗口中,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

现在,我真的不明白为什么它会这样,而且我没有看到断点命中。这可能是一个非常愚蠢的问题,但我的 Java 开发技能非常有限,所以对我来说这是一个令人头痛的问题。

最佳答案

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

在jar,META-INF文件夹中,应该有一个文件名MANIFEST.MF,在该文件中应该有这样的条目

Main-Class: mypackage.MyMainClass

关于Java 远程调试不适用于 Eclipse 或 IntelliJ 。需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45322486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com