javac -g 参数
通过这个参数,可以在生成的class文件中,添加具体的 line,source,vars 信息,具体的作用体现在:
- 因为调试的时候需要符号信息,所以一定需要这个参数
- 在抛出Exception的时候,可以知道具体的错误位置,而非Unknown Source。
添加了这个参数后,不可避免的class文件会变大一点,但是为了以后的维护,还是非常值得的。
混淆
通常,在生产环境中,会认为不需要调试信息,但是,建议还是添加上去,避免抛出异常后,无法追踪来源。如果为了代码安全,通常是使用proguard进行混淆处理,而非简单的不使用-g参数,记得保留mapping文件。