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 时可能做错了什么。
这是我所做的:
- 我从apache网站下载了log4j。
- 我将下载的文件 (apache-log4j-2.8.2-bin.tar) 复制到我桌面上的一个文件夹中。
- 我使用 Archive Utility 提取了 tar 文件的内容。
- 作为第 4 步的结果,我在 tar 文件所在的同一文件夹中有一个名为 "apache-log4j-2.8.2-bin" 的文件夹。
- 我去了 netbeans IDE 并按照此视频中的步骤将 log4j 添加到 netbeans:
https://www.youtube.com/watch?v=vqhQY7U9Rlc(我调用了新库"log4j")
- 作为第 5 步的结果,我现在在我的库文件夹
中多了一个名为 "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
文件而不是完整的文件夹。如下图。
我正在阅读蒂姆·唐尼 (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 时可能做错了什么。
这是我所做的:
- 我从apache网站下载了log4j。
- 我将下载的文件 (apache-log4j-2.8.2-bin.tar) 复制到我桌面上的一个文件夹中。
- 我使用 Archive Utility 提取了 tar 文件的内容。
- 作为第 4 步的结果,我在 tar 文件所在的同一文件夹中有一个名为 "apache-log4j-2.8.2-bin" 的文件夹。
- 我去了 netbeans IDE 并按照此视频中的步骤将 log4j 添加到 netbeans: https://www.youtube.com/watch?v=vqhQY7U9Rlc(我调用了新库"log4j")
- 作为第 5 步的结果,我现在在我的库文件夹 中多了一个名为 "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..
它将提示 window 导航和 select 你的 jar。
一次,你添加它们,然后它应该看起来像
如果需要,您可以从此处展开 jar 并查看 class 是否存在于 jar 中。
==更新==
您只需要 select *.jar
文件而不是完整的文件夹。如下图。