如何将log4j与Netbeans 6.9.1一起用于Java桌面应用程序

如何将log4j与Netbeans 6.9.1一起用于Java桌面应用程序,log4j,netbeans-6.9,java,Log4j,Netbeans 6.9,Java,我正在尝试为我的Java桌面应用程序使用log4j,我正在使用Netbeans IDE 6.9.1开发该应用程序。我在META-INF文件夹中有log4j.properties文件,用于在开发过程中进行日志记录。我还试着将它与可执行jar放在一起(安装后),但两者都不起作用。当我调用该方法时,它也抛出异常 PropertyConfigurator.configure(filepath); 无论log.properties文件的位置如何,它都会引发此异常 java.io.FileNotFound

我正在尝试为我的Java桌面应用程序使用log4j,我正在使用Netbeans IDE 6.9.1开发该应用程序。我在META-INF文件夹中有log4j.properties文件,用于在开发过程中进行日志记录。我还试着将它与可执行jar放在一起(安装后),但两者都不起作用。当我调用该方法时,它也抛出异常

PropertyConfigurator.configure(filepath);
无论log.properties文件的位置如何,它都会引发此异常

java.io.FileNotFoundException: META-INF\log4j.properties (The system cannot find the path specified)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at java.io.FileInputStream.<init>(FileInputStream.java:66)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:306)
        at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:324)
        at fi.xmldation.common.SharedMethods.readSettingsFile(SharedMethods.java:43)
PropertyConfigurator.configure((new Properties()).load(new FileInputStream ("log4j.properties")));
java.io.FileNotFoundException:META-INF\log4j.properties(系统找不到指定的路径)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:106)
位于java.io.FileInputStream。(FileInputStream.java:66)
位于org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:306)
在org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:324)上
位于fi.xmldation.common.SharedMethods.readSettingsFile(SharedMethods.java:43)

这是IDE中的错误还是我做错了什么

如果使用NetBeans等IDE运行程序,请额外检查文件是否位于IDE的输出目录中。通常,log4j在类路径上查找该文件,因此您必须确保NetBeans确实将其复制到那里。
您的IDE很可能会将自己的输出目录设置为类路径的一部分,因此我认为(至少)这里有两个选项:将log4j.properties放置到类路径中的目录添加到类路径中,或者确保将其复制到IDE:s输出目录中。祝你好运

如果我从属性文件加载属性,它会起作用

java.io.FileNotFoundException: META-INF\log4j.properties (The system cannot find the path specified)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at java.io.FileInputStream.<init>(FileInputStream.java:66)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:306)
        at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:324)
        at fi.xmldation.common.SharedMethods.readSettingsFile(SharedMethods.java:43)
PropertyConfigurator.configure((new Properties()).load(new FileInputStream ("log4j.properties")));

谢谢你的回答,但我已经知道这些事情了,所以请再读一遍这个问题。问题是,即使您提供了任何路径(C:/some_文件夹/文件名),它也会抛出找不到的异常文件。您可以发布项目的目录结构吗?用于开发:src->META-INF->log4j.properties===============================================================构建路径:build->classes->META-INF->->log4j.properties=====================================我可以通过文件对象访问该文件。因此,文件路径等没有问题。log4j配置函数可能有一些硬编码值,或者它与j2se 6和netbeans不兼容。6.9)log4j在类路径中搜索配置文件,因此将log4j.properties放在“Source packages”IDE项目树文件夹中应该可以(iirc NetBeans在生成的jar中包含文件)