没有附加源代码 jar 的 jar 中的代码抛出的异常打印的 Java 堆栈跟踪中的行号指向哪里
Where do the line numbers point to in Java stacktraces printed by exceptions thrown by code from jars that have no source code jar attached
当在没有附加源 jar 的 jar 中编译的代码抛出异常时,堆栈跟踪中的行号是否引用已编译的字节码语句的行号 class,或者 class 中包含源代码的行号?
编译Java代码时,源代码的行号默认写入字节码。这使得更容易追踪问题。行号(和源文件)信息存储在 .class
文件中,并且(不一定)与附加源中的行相同。例如,如果您附加了错误版本的库的源代码,那么在调试时可能会显示错误的行。
可以禁用它(例如通过将 -g:none
传递给 javac
)。禁用它会使查找和解决问题变得更加困难,但禁用它会使结果 .class
变小。
当在没有附加源 jar 的 jar 中编译的代码抛出异常时,堆栈跟踪中的行号是否引用已编译的字节码语句的行号 class,或者 class 中包含源代码的行号?
编译Java代码时,源代码的行号默认写入字节码。这使得更容易追踪问题。行号(和源文件)信息存储在 .class
文件中,并且(不一定)与附加源中的行相同。例如,如果您附加了错误版本的库的源代码,那么在调试时可能会显示错误的行。
可以禁用它(例如通过将 -g:none
传递给 javac
)。禁用它会使查找和解决问题变得更加困难,但禁用它会使结果 .class
变小。