Классы log4j не найдены в IDE Netbeans
Я работаю над книгой Тима Дауни "Веб-разработка с Java".
В главе 4 одной из тем является регистрация с log4j.
Для инициализации регистратора используется сервлет инициализации.
Одним из необходимых классов является, например, "FileAppender". Следовательно, для него есть оператор импорта в верхней части файла:
import org.apache.log4j.FileAppender;
Я также использовал тот же оператор импорта. Тем не менее, NetBeans говорит мне, что этот класс не существует. (То же самое верно для любого другого класса из библиотеки log4j.)
Обычно, когда я создаю объект класса, который еще не импортирован, среда IDE NetBeans предлагает мне импортировать соответствующий класс.
Поэтому я создал объект типа "FileAppender":
FileAppender appender = getAppender(logPath);
... Я надеялся, что IDE скажет мне, что import-оператор использовать для импорта этого класса.
Однако не такая удача. Видимо, в IDE не знают о таком классе.
Итак, я думаю, что по какой-то причине IDE не знает, где искать. Это снова означает, что я, вероятно, сделал что-то не так при настройке log4j.
Вот что я сделал:
- Я скачал log4j с веб-сайта apache.
- Я скопировал загруженный файл (apache-log4j-2.8.2-bin.tar) в папку на рабочем столе.
- Я использовал Archive Utility для извлечения содержимого файла tar.
- В результате шага 4 у меня была папка "apache-log4j-2.8.2-bin" в той же папке, где находится файл tar.
- Я пошел в IDE NetBeans и следовал инструкциям в этом видео, чтобы добавить log4j к NetBeans: https://www.youtube.com/watch?v=vqhQY7U9Rlc (я назвал новую библиотеку "log4j")
- В результате шага 5 у меня теперь есть дополнительная библиотека с именем "log4j" в моей папке библиотек
Но IDE, похоже, не знает ни о каких пакетах или классах log4j.
Я сделал что-то не так? (Что я сделал не так?)
************************ОБНОВИТЬ************************* **************
Вот скриншот папки библиотеки netbeans после того, как я добавил log4j:
Вот изображение среды IDE, которая говорит мне, что она не знает о пакете log4j (то, что вы видите, это верхняя часть файла "InitLog4j.java", который снова находится внутри пакета с именем "Various". Пакет "Various" находится внутри папка с именем "Исходные пакеты"):
*********************** UPDATE2 ************************** *************
Проблема существует независимо от того, включаю ли я log4j как библиотеку или как JAR/FOLDER.
После добавления log4j как Jar / Folder:
... структура моей папки netbeans выглядит следующим образом (log4j находится в папке, путь к которой начинается с "/Users"):
Однако проблема остается той же. NETbeans не знает о пакетах log4j.
********************** Update3***********************************
Я нашел класс FileAppender среди множества файлов в папке log4j:
Итак, класс "FileAppender" существует. Следовательно, когда я создаю объект типа "FileAppender", Идея должна предложить импортировать класс. Однако этого не происходит (на снимке экрана выше вы можете видеть, что класс "FileAppender" существует (см. Левую сторону), вы также можете видеть, что IDE не распознает класс (см. Код с правой стороны)).
*************************UPDATE4***********************************
Вместо того, чтобы добавить всю папку, я теперь добавил только файлы JAR внутри папки. Структура папок netbeans теперь выглядит следующим образом:
Тем не менее, IDE по-прежнему не распознает пакеты log4j (например, для объекта FileAppender оператор импорта не предлагается).
1 ответ
Согласно вашему скриншоту. Похоже, вы добавили эту банку в качестве библиотеки. Вам нужно добавить банку, используя Add Jar/Folder..
вариант не тот Add Library..
Появится окно для навигации и выбора вашей банки.
Раз вы добавляете их, то это должно выглядеть
Вы можете развернуть банку отсюда и посмотреть, существует ли необходимый класс внутри баночки или нет.
== Обновление ==
Вам нужно только выбрать *.jar
файл не полная папка. Как показано ниже.