有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

当使用via时,java Log4j不显示行记录。jar文件

我有一个使用jar文件的程序,它使用log4j。 它的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文件夹吗?现在看来,使用罐子是没有用的

还有别的办法吗?谢谢


共 (2) 个答案

  1. # 1 楼答案

    听起来jar文件包含的类是在没有调试信息的情况下编译的

    正如你所发现的,这是非常可取的。我建议向负责构建罐子的人提交一个bug,如果可以的话,自己重新构建。如果没有,则包括src文件夹,但正确的jar更好

  2. # 2 楼答案

    您需要编译启用调试的Java类。在ant中,这将如下所示:

    <javac destdir="XXXX" source="1.5" target="1.5" debug="true" encoding="UTF-8">
    

    直接使用javac需要指定-g。见javac docs