【发布时间】:2019-04-03 16:02:53
【问题描述】:
大多数与远程调试相关的问题都是针对整个 Java 应用程序的,您的 IDE 中的代码来自该应用程序。
在这种情况下,我无法访问完整的应用程序,只能访问代码片段、.jar 文件,这些文件稍后会嵌入到更大的应用程序中,最终将调用它们并执行它们的代码。
与大型应用程序不同,我开发的这些.jar文件不包含方法:
public static void main(string[] args)
.jar 文件实现了骆驼处理器接口,当每个配置需要一段特定代码时调用该接口。
我正在尝试仅为嵌入式 .jar 文件设置 Eclipse 远程调试。这意味着一旦 .jar 文件代码被调用,eclipse IDE 就会开始它的调试过程。
到目前为止我尝试了什么:
我尝试在调试模式下启动 .jar 文件:
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y -jar mycode.jar
在此之后它开始:
Listening for transport dt_socket at address: 8000
尽管如上所述,这不是一个完整的 java 应用程序,但一旦我尝试将 eclipse 上的远程配置连接到它,我就会收到错误:
no main manifest attribute, in mycode.jar
如前所述,这对我来说很有意义,因为我没有主课。
现在,即使没有主类存在,是否也可以仅在调用 .jar 文件时对其进行调试?
【问题讨论】:
-
您必须在调试模式下启动整个应用程序,如果您必须在应用程序内部运行时调试您的代码,则不仅是您的代码。
-
@Robert 但除此之外,我仍然必须在我的 IDE 中拥有整个应用程序才能对其进行调试。至少在远程 Java 应用程序调试配置中我需要引用一个项目。
-
AFAIR 您不必在本地开设所有课程。您甚至可以使用空项目连接到远程进程。当然调试会变得有点复杂。但是您可以将相关库添加到项目的构建路径中。安装反编译插件:marketplace.eclipse.org/content/enhanced-class-decompiler
标签: java eclipse debugging remote-debugging