gpt4 book ai didi

java - 如何解决NoClassDefFoundError : org/apache/log4j/Logger in linux

转载 作者:行者123 更新时间:2023-11-30 07:48:22 25 4
gpt4 key购买 nike

这是我的简单程序

首先,log4j存在于WEB-INF/lib目录下。

package com.util;
import org.apache.log4j.Logger;
public class TestCron {
static Logger logger = Logger.getLogger(TestCron.class);
public static void main(String[] args) {
System.out.println("sysout sattement for sample ");
logger.error("This should appear inside dealer logs");
}
}

我有一个脚本,我正在尝试在 Linux 中手动运行。

 #!/bin/bash 
cd /usr/local/tomcat7/webapps/Test/WEB-INF/classes/
JAVA_HOME=/opt/jdk1.7.0_67
CLASSPATH=/usr/local/tomcat7/webapps/Test/WEB-INF/lib/*: .
$JAVA_HOME/bin/java -Dlogfile=/root/MyAppLogs/dealer/app.log -cp . $CLASSPATH com.util.TestCron

我收到以下错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger

您能告诉我如何解决这个问题吗?

编辑部分

#!/bin/bash 
cd /usr/local/tomcat7/webapps/OMS/WEB-INF/classes/
JAVA_HOME=/opt/jdk1.7.0_67
CLASSPATH=/usr/local/tomcat7/webapps/OMS/WEB-INF/lib/*: .
$JAVA_HOME/bin/java -Dlogfile=/root/OrientAppLogs/dealer/app.log -cp .:$CLASSPATH com.util.TestCron

最佳答案

在您的调用中我看到 -cp 。 $CLASSPATH。在linux环境下类路径中使用的文件分隔符是:,因此类路径中仅包含当前目录。

我认为你需要将其更改为 -cp .:$CLASSPATH

关于java - 如何解决NoClassDefFoundError : org/apache/log4j/Logger in linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33605358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com