最近在写ant编译时,运行中老出现莫名的Unknow Source,异常不会定位到具体的行,于是狗狗了一把,才知道ant和java编译是不一样的:
当通过javac编译时,默认相当于指定-g:source,lines,这样编译出来的class文件中会包含源代码和行号信息;而通过ant编译时,默认相当于指定-g:none,这样编译出来的class文件会比较小,但是不包含任何调试信息,所以出错的时候就会打印出上面的错误堆栈信息。
([url]http://bbs.51cto.com/thread-499303-1.html[/url])
加上debug="true" debuglevel="source,lines,vars"即ok,如下:
ps; je博客第一篇,希望今年能成长~~~
当通过javac编译时,默认相当于指定-g:source,lines,这样编译出来的class文件中会包含源代码和行号信息;而通过ant编译时,默认相当于指定-g:none,这样编译出来的class文件会比较小,但是不包含任何调试信息,所以出错的时候就会打印出上面的错误堆栈信息。
([url]http://bbs.51cto.com/thread-499303-1.html[/url])
加上debug="true" debuglevel="source,lines,vars"即ok,如下:
<javac destdir="${build.classes}" srcdir="${src.java}"
classpathref="lib.classpath" encoding="utf-8"
debug="true" debuglevel="source,lines,vars"/>
ps; je博客第一篇,希望今年能成长~~~
解决Ant编译UnknowSource问题
本文介绍了解决使用Ant进行Java项目编译时遇到的UnknowSource问题的方法。默认情况下,Ant编译不包含调试信息,导致无法准确定位错误。通过设置debug属性为true,并指定debuglevel为source,lines,vars,可以使得编译后的Class文件包含足够的信息以帮助开发者调试。
1429

被折叠的 条评论
为什么被折叠?



