After finishing the demo version of a project, deploy the application to the server. After running for a period of time, load the related logs from the server and find that there is no corresponding code line number in the exception stack information. Only show unknown source. This is quite troublesome for us to locate the problem.
The application is compiled with ant, so the Java program compiled with ant is different from javac. When compiled by javac, the default value is-G: source and lines. In this way, the compiled class file contains the source code and line number information. When compiled by ant, by default, it is equivalent to specifying-G: None. In this way, the compiled class file will be relatively small, but it does not contain any debugging information. Therefore, when an error occurs, no line number or other information will be included.
So when ant is used for compilation, add DEBUG = "true" debuglevel = "source, lines, vars". The example is as follows:
1 <javac destdir = "$ {build. classes} "srcdir =" $ {SRC. java} "classpathref =" Lib. classpath "encoding =" UTF-8 "DEBUG =" true "debuglevel =" source, lines, vars "/>