我有一个程序,它使用一个使用log4j的jar文件。 它的log4j属性包含以下模式:
[%-5p] (%d) %l : %m%n
当我的程序访问执行日志的jar中的方法时,它会生成:
[INFO ] (2011-02-25 14:13:43,426) org.fractor.service.AppConfigService.getStringValueOf(?:?) : processing.user: root
我试图包含jar文件的原始src文件夹,当我再次运行程序时,它会输出:
[INFO ] (2011-02-25 14:13:43,426) org.fractor.service.AppConfigService.getStringValueOf(AppConfigService.java:125) : processing.user: root
这似乎没问题但是在创建包含使用log4j的jar的程序的jar文件时,它不包含jar的src文件夹,因此会发出错误。
是不是因为它只是引用了jar的src文件夹?我是否需要在jar中包含jar的src文件夹?似乎在这一点上使用jar会毫无用处。
还有另一种方法吗?感谢。
答案 0 :(得分:2)
听起来jar文件包含在没有调试信息的情况下编译的类。
正如您所发现的那样,这是非常可取的。我建议向那些负责构建jar的人提交一个bug,然后如果可以的话自己重建它。如果没有,那么包括src文件夹,但正确的jar更好。
答案 1 :(得分:0)
您需要在启用调试的情况下编译Java类。在蚂蚁中,这将看起来如下:
<javac destdir="XXXX" source="1.5" target="1.5" debug="true" encoding="UTF-8">
直接使用javac,您需要指定 -g 。请参阅javac docs。