log4j 类 在 Netbeans IDE 中找不到

log4j classes not found in Netbeans IDE

我正在阅读蒂姆·唐尼 (Tim Downey) 的书 "Web Development with Java"。

第 4 章的主题之一是使用 log4j 进行日志记录。

为了初始化记录器,使用了初始化 servlet。

所需的 class 之一是,例如,"FileAppender"。因此,文件顶部有一个导入语句:

import org.apache.log4j.FileAppender;

我也使用了相同的导入语句。但是,netbeans 告诉我这个 class 不存在。 (对于 log4j 库中的任何其他 class 也是如此。)

通常,当我创建一个尚未导入的 class 的对象时,netbeans IDE 让我导入相应的 class.

所以我创建了一个 "FileAppender":

类型的对象
FileAppender appender = getAppender(logPath);

...我希望 IDE 会告诉我使用什么导入语句来导入这个 class.

然而,没有这样的运气。显然, IDE 不知道这样的 class.

所以,我认为出于某种原因 IDE 不知道去哪里找。 这再次意味着我在设置 log4j 时可能做错了什么。

这是我所做的:

  1. 我从apache网站下载了log4j。
  2. 我将下载的文件 (apache-log4j-2.8.2-bin.tar) 复制到我桌面上的一个文件夹中。
  3. 我使用 Archive Utility 提取了 tar 文件的内容。
  4. 作为第 4 步的结果,我在 tar 文件所在的同一文件夹中有一个名为 "apache-log4j-2.8.2-bin" 的文件夹。
  5. 我去了 netbeans IDE 并按照此视频中的步骤将 log4j 添加到 netbeans: https://www.youtube.com/watch?v=vqhQY7U9Rlc(我调用了新库"log4j")
  6. 作为第 5 步的结果,我现在在我的库文件夹
  7. 中多了一个名为 "log4j" 的库

但是 IDE 似乎不知道任何 log4j 包或 classes。

我做错了什么吗? (我做错了什么?)

************************更新******************** *******************

这是我添加log4j后netbeans库文件夹的截图:

这是 IDE 的图片,告诉我它不知道 log4j 的包 (您看到的是文件 "InitLog4j.java" 的上半部分,它再次位于名为 "various" 的包内。包 "various" 位于名为 "Source Packages" 的文件夹内):

************************UPDATE2********************* ******************

问题的存在与我将 log4j 作为库还是作为 JAR/FOLDER.

无关

添加 log4j 后 Jar/Folder:

...我的 netbeans 文件夹结构如下(log4j 位于路径 starts 带有“/Users”的文件夹中):

但是,问题依旧。 Netbeans 不知道 log4j 包。

************************更新3********************* *************

我在 log4j 文件夹中的许多文件中找到了 FileAppender class:

因此,class "FileAppender" 存在。因此,当我创建类型为 "FileAppender" 的对象时,Idea 应该会提供导入 class 类型的对象。然而,这并没有发生(在上面的屏幕截图中你可以看到 class "FileAppender" 存在(见左侧),你还可以看到 IDE 不识别 class(见右侧代码))。

***************************更新 4********************* *******************

我现在只添加文件夹中的 jar 文件,而不是添加整个文件夹。 netbeans 文件夹结构现在如下所示:

然而,IDE 似乎仍然无法识别 log4j 包(例如,对于 FileAppender 对象,不建议使用 import 语句)。

根据你的截图。似乎您已将此 jar 添加为库。您需要使用 Add Jar/Folder.. 选项 而不是 Add Library..

添加 jar

它将提示 window 导航和 select 你的 jar。

一次,你添加它们,然后它应该看起来像

如果需要,您可以从此处展开 jar 并查看 class 是否存在于 jar 中。

==更新==

您只需要 select *.jar 文件而不是完整的文件夹。如下图。