亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

錯誤:從 cmd 運行代碼時包 org.apache.log4j 不存在

錯誤:從 cmd 運行代碼時包 org.apache.log4j 不存在

DIEA 2023-02-23 16:33:33
運行javac Main.java命令時出現package org.apache.log4j does not exist錯誤。Main班級public class Main {    private static Logger logger = Logger.getLogger(Main.class);    public static void main(String[] args) {        BasicConfigurator.configure();        logger.info("in Main class");    }}pom.xml<?xml version="1.0" encoding="UTF-8"?><project        xmlns="http://maven.apache.org/POM/4.0.0"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>groupId</groupId>    <artifactId>example</artifactId>    <version>1.0-SNAPSHOT</version>    <dependencies>        <dependency>            <groupId>log4j</groupId>            <artifactId>log4j</artifactId>            <version>1.2.17</version>            <scope>compile</scope>        </dependency>    </dependencies></project>log4j.propertieslog4j.rootCategory=debug,consolelog4j.logger.com.demo.package=debug,consolelog4j.additivity.com.demo.package=falselog4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.target=System.outlog4j.appender.console.immediateFlush=truelog4j.appender.console.encoding=UTF-8log4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.conversionPattern=%d [%t] %-5p %c - %m%n我收到的錯誤信息是:
查看完整描述

1 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

假設 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 和 command-line javac。沒有 Maven,您就不會自動將依賴項添加到您的類路徑中。


如果你想從命令行運行

在這種情況下,您必須將 log4j 添加到類路徑中。它看起來像這樣(從 sources 目錄運行,這是<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。


如果你想用maven編譯

mvn compile只需從您所在的目錄運行即可pom.xml。請注意,maven 會將類編譯到target目錄中,即您編譯的類將在路徑中\target\classes\company\Main.class(相對于您的項目根目錄,您pom.xml所在的位置)。


查看完整回答
反對 回復 2023-02-23
  • 1 回答
  • 0 關注
  • 385 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號