java编译程序时,stacktrace是如何打印的?
这是一个非常简单的问题:
当你们编译一个java程序时,它会被转换成字节码,所以,每行代码的每一个行号。java或。类文件丢失(我想是的,可能是我错了)。那么,当打印堆栈跟踪时,它是如何获得调用堆栈中的所有类名和行号的呢?我想我可能遗漏了一些东西,但我找不到任何与此相关的东西
你可以在下面搜索框中键入要查询的问题!
这是一个非常简单的问题:
当你们编译一个java程序时,它会被转换成字节码,所以,每行代码的每一个行号。java或。类文件丢失(我想是的,可能是我错了)。那么,当打印堆栈跟踪时,它是如何获得调用堆栈中的所有类名和行号的呢?我想我可能遗漏了一些东西,但我找不到任何与此相关的东西
# 1 楼答案
如果存在行号,那么java编译器创建字节码时
debug
标志设置为true。这可以通过java -g
实现来自Oracle的javac文档:
# 2 楼答案
对
你错了。行号信息嵌入到。类文件,除非以某些方式使用
-g
编译器选项