【发布时间】:2017-06-18 18:12:53
【问题描述】:
我正在阅读 Tim Downey 的《使用 Java 进行 Web 开发》一书。
在第 4 章中,其中一个主题是使用 log4j 进行日志记录。
为了初始化记录器,使用了一个初始化 servlet。
所需的类之一是,例如,“FileAppender”。因此,文件顶部有一个 import 语句:
import org.apache.log4j.FileAppender;
我也使用了相同的导入语句。但是,netbeans 告诉我这个类不存在。 (对于 log4j 库中的任何其他类也是如此。)
通常,当我创建尚未导入的类的对象时,netbeans IDE 会为我提供导入相应的类。
所以我创建了一个“FileAppender”类型的对象:
FileAppender appender = getAppender(logPath);
...我希望 IDE 会告诉我要使用什么导入语句来导入此类。
但是,没有这样的运气。显然,IDE 不知道这样的类。
所以,我认为出于某种原因,IDE 不知道去哪里寻找。 这再次意味着我在设置 log4j 时可能做错了。
这就是我所做的:
- 我从 apache 网站下载了 log4j。
- 我将下载的文件 (apache-log4j-2.8.2-bin.tar) 复制到我桌面上的一个文件夹中。
- 我使用存档实用程序提取了 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 包或类。
我做错了吗? (我做错了什么?)
************************更新********************** *****************
这是我添加log4j后netbeans库文件夹的截图:
这是 IDE 的图片,告诉我它不知道 log4j 的包 (您看到的是文件“InitLog4j.java”的上半部分,它再次位于名为“various”的包内。包“various”位于名为“Source Packages”的文件夹内):
****************************更新2**************************** ******************
问题的存在与我是否将 log4j 作为库或 JAR/FOLDER 包括在内。
将 log4j 添加为 Jar/Folder 后:
...我的netbeans文件夹结构如下(log4j在路径以“/Users”开头的文件夹中):
但是,问题仍然存在。 Netbeans 不知道 log4j 包。
**********************更新3************************ ***********
我在 log4j 文件夹内的众多文件中找到了 FileAppender 类:
所以,“FileAppender”类存在。因此,当我创建“FileAppender”类型的对象时,Idea 应该提供导入类。但是,这不会发生(在上面的屏幕截图中,您可以看到“FileAppender”类存在(见左侧),您还可以看到 IDE 无法识别该类(见右侧代码))。
******************************更新4************************ **************
我现在只添加文件夹内的 jar 文件,而不是添加整个文件夹。 netbeans 文件夹结构现在如下所示:
然而,IDE 似乎仍然无法识别 log4j 包(例如,对于 FileAppender 对象,不建议使用 import 语句)。
【问题讨论】:
-
你把这个 jar 添加到库了吗?
-
哪个 jar 到哪个库?
-
嗯。真的 ??你的班级怎么知道哪个班级?
-
我不明白你的意思...我将整个 log4j 库添加到 netbeans 的 Libraries 文件夹中...
-
我不认为。如果您的 jar 是项目的一部分。然后,它应该要求您导入。可能是您添加了 jar,但没有清理构建。
标签: java netbeans log4j classnotfound