我正在通过Tim Downey的书“使用Java进行Web开发”。
在第4章中,其中一个主题是使用log4j进行日志记录。
为了初始化记录器,使用初始化servlet。
所需的类之一是例如“FileAppender”。因此,文件顶部有一个import语句:
import org.apache.log4j.FileAppender;
我也使用了相同的import语句。然而,netbeans告诉我这个类不存在。 (对于log4j库中的任何其他类也是如此。)
通常,当我创建一个尚未导入的类的对象时,netbeans IDE会让我导入相应的类。
所以我创建了一个“FileAppender”类型的对象:
FileAppender appender = getAppender(logPath);
...我希望IDE会告诉我使用什么import-statement来导入这个类。
然而,没有这样的运气。显然,IDE不知道这样的类。
所以,我认为由于某种原因,IDE不知道在哪里看。 这再次意味着我在设置log4j时可能做错了。
这就是我的所作所为:
但IDE似乎并不了解任何log4j包或类。
我做错了什么吗? (我做错了什么?)
************************ UPDATE ********************** *****************
这是我添加log4j之后的netbeans库文件夹的屏幕截图:
这是IDE的图片,告诉我它不了解log4j的软件包 (你看到的是文件“InitLog4j.java”的上半部分,它同样位于名为“various”的包中。包“various”在名为“Source Packages”的文件夹中):
*********************** UPDATE2 *********************** ****************
问题的存在与我是否将log4j包含为库或JAR / FOLDER无关。
将log4j添加为Jar / Folder后:
...我的netbeans文件夹结构如下所示(log4j位于路径以“/ Users”开头的文件夹中):
然而,问题仍然存在。 Netbeans不了解log4j包。
********************** UPDATE3 ************************ ***********
我在log4j文件夹中的许多文件中找到了FileAppender类:
因此,类“FileAppender”存在。因此,当我创建一个“FileAppender”类型的对象时,Idea应该提供导入类。但是,这不会发生(在上面的屏幕截图中,您可以看到类“FileAppender”存在(参见左侧),您还可以看到IDE无法识别该类(请参阅右侧的代码))。
******** UPDATE4 ********************* **************
我现在只在文件夹中添加了jar文件,而不是添加整个文件夹。 netbeans文件夹结构现在如下所示:
但是,IDE似乎仍然无法识别log4j包(例如,对于FileAppender对象,不建议使用import语句。)