首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带有源的jar作为jdb的源?

使用带有源的jar作为jdb的源?
EN

Stack Overflow用户
提问于 2010-09-08 13:50:45
回答 4查看 11.7K关注 0票数 10

我有一个带有源代码编译的可执行jar,我希望使用jdb来调试它(不幸的是,在这个环境中没有其他调试器可用)。

我能够用

代码语言:javascript
复制
jdb -classpath "${JAR_FILE}:${CLASS_PATH}" ${MAIN_CLASS} ${ARGS}

如何让jdb使用jar文件中内置的源代码?

注释: Java 6、AIX、ksh

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-08 16:53:36

这可能是不可能的,正如这个(很旧的)职位在论坛上所说的那样。

票数 5
EN

Stack Overflow用户

发布于 2010-11-12 15:26:45

如果jdb忽略了*.jar和*.zip条目的sourcepath,也许您可以启动一个批处理文件,将源从目标jar扩展到临时目录,并将sourcepath指向该目录。

就像这样

代码语言:javascript
复制
MYDEBUGDIR=/temp/source/mydebug
jar -xf target.jar -C $MYDEBUGDIR
jdb -sourcepath ${MYDEBUGDIR} -classpath "${JAR_FILE}:${CLASS_PATH}" ${MAIN_CLASS} ${ARGS}
rmdir -r $MYDEBUGDIR

这样,调试源就会与jar同步,并在其自身之后进行清理。

票数 8
EN

Stack Overflow用户

发布于 2019-10-29 08:36:54

实际上,我今天在没有源代码的情况下成功地调试到一个jar文件中,步骤如下:

  1. 解压缩jar文件
  2. jdb -sourcepath解压缩的源文件夹-classpath主类的路径
  3. 在jdb初始化之后,执行如下:
代码语言:javascript
复制
stop at <package>.<yourclass>:<linenunmber>
run <your main class, for example org.springframework.boot.loader.JarLauncher>
  1. 触发断点后,可以使用jdb命令逐步调试。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3668379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档