Допущение 1 (неверно): нет импорта в исходном классе → импорт должен быть добавлен
Похоже, что вам не хватает import
операторов в вашем Main
классе.Попробуйте это:
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
public class Main {
private static Logger logger = Logger.getLogger(Main.class);
public static void main(String[] args) {
BasicConfigurator.configure();
logger.info("in Main class");
}
}
Реальная проблема (после того, как я исправил отображение изображения в посте)
Вы запускаете компиляцию не с maven buth с командной строкой javac
.Без maven у вас не будет зависимостей, автоматически добавляемых в ваш путь к классам.
Если вы хотите запускать из командной строки
В этом случае вам нужно добавить log4j в ваш путь к классам.Это будет выглядеть так (работает из каталога исходников, который <project_root>\src\main\java
в макете по умолчанию maven:
javac company/Main.java -cp %userprofile%\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar
Я предполагаю, что ваше локальное хранилище Maven находится по умолчанию в пути Windows %userprofile%\.m2
. Если он находится в какой-либо другой части (или Linux), вам нужно изменить путь на ваш log4j-1.2.17.jar
.
В этом случае класс Main.class
будет скомпилирован в тот же пакет, гдеMain.class
is.
Если вы хотите скомпилировать с maven
Просто запустите mvn compile
из каталога, где находится ваш pom.xml
. Обратите внимание, что maven скомпилирует классы в target
каталог, т. е. ваш скомпилированный класс будет иметь путь, подобный \target\classes\company\Main.class
(относительно корня вашего проекта, где находится pom.xml
).