这是我的简单程序
首先,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
我收到以下错误
线程“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
答案 0 :(得分:1)
在您的调用中,我看到-cp . $CLASSPATH
。类路径中使用的文件分隔符在linux环境中是:
,因此只有当前目录包含在类路径中。
我认为您需要将其更改为-cp .:$CLASSPATH