我有一个带有源代码编译的可执行jar,我希望使用jdb来调试它(不幸的是,在这个环境中没有其他调试器可用)。
我能够用
jdb -classpath "${JAR_FILE}:${CLASS_PATH}" ${MAIN_CLASS} ${ARGS}如何让jdb使用jar文件中内置的源代码?
注释: Java 6、AIX、ksh
发布于 2010-09-08 16:53:36
这可能是不可能的,正如这个(很旧的)职位在论坛上所说的那样。
发布于 2010-11-12 15:26:45
如果jdb忽略了*.jar和*.zip条目的sourcepath,也许您可以启动一个批处理文件,将源从目标jar扩展到临时目录,并将sourcepath指向该目录。
就像这样
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同步,并在其自身之后进行清理。
发布于 2019-10-29 08:36:54
实际上,我今天在没有源代码的情况下成功地调试到一个jar文件中,步骤如下:
stop at <package>.<yourclass>:<linenunmber>
run <your main class, for example org.springframework.boot.loader.JarLauncher>https://stackoverflow.com/questions/3668379
复制相似问题