最近做完一个项目的Demo版本,将应用程序deploy到服务器上。运行一段时间后,把相关的日志从服务器load下来,发现异常堆栈信息里,没有相应的代码行号。只显示Unknown source.这对我们定位问题相当麻烦。

  应用程序是用ant编译的,于是股沟了一下,发是用ant编译Java程序与javac编译是有些差别的。当通过javac编译时,默认相当于指定-g:source,lines,这样编译出来的class文件中会包含源代码和行号信息;而通过ant编译时,默认相当于指定-g:none,这样编译出来的class文件会比较小,但是不包含任何调试信息,所以出错的时候就不会带行号等信息。

  所以用ant编译时,加上debug="true" debuglevel="source,lines,vars"就可以了,示例如下:

  

1 <javac destdir="${build.classes}" srcdir="${src.java}"classpathref="lib.classpath" encoding="utf-8" debug="true" debuglevel="source,lines,vars"/>  

 

 

相关文章:

  • 2021-05-12
  • 2022-12-23
  • 2021-06-28
  • 2022-01-10
  • 2021-11-24
  • 2022-02-07
  • 2022-12-23
  • 2021-11-27
猜你喜欢
  • 2022-12-23
  • 2022-02-24
  • 2022-12-23
  • 2021-11-20
  • 2021-11-17
  • 2021-06-02
  • 2021-10-04
相关资源
相似解决方案