在我们的产品中有几个jdk 1.6.0._17编译的java源文件。 当他们中的任何一个出现异常时,他们都没有给出行号。.class文件没有LineNumberTable
我用javap来了解更多关于jdk 1.6.0._17编译的类。 javap输出没有任何LineNumberTable,这就是在异常堆栈跟踪中不显示行号的原因。
我的问题: 我的javac命令没有使用任何与调试相关的标志(如-g:lines,vars,source)。 因此,默认情况下,类文件应至少包含源&行号信息。 不禁用通过使用-g:none也无法生成调试信息。
那么LineNumberTable没有在.class文件中产生的原因是什么呢?
任何有关这方面的帮助,非常感谢。
问候, VK
并没有你说的其他地方编译罐子?如果在他们的.class文件中没有编译调试信息,那就可以解释它。混淆器还应剥离调试信息,如.class行号表。 –
顺便说一句,你提到的JDK类,也许你正在运行的JRE类? –