部署到Linux后报错java.lang.NoClassDefFoundError
在本地修改了一个发送短信的程序,在本地时,运行正常,放在Linux上运行时总会报
java.lang.NoClassDefFoundError:org/dom4j/io/SAXReader ,lib下相应的包dom4j-1.6.1.jar 也是存在的,困扰了好久,最后发现是启动文件 *.sh中没有export相应的包。
修改后的sh文件:
#!/bin/sh
# setup JAVA HOME
export JAVA_HOME=/usr/java/jdk1.6.0_21
export PATH=$JAVA_HOME/bin:$PATH
# setup the class path...
export LIB_CP=.:../lib/log4j-1.2.16.jar
export LIB_CP=$LIB_CP:../lib/slf4j-api-1.5.5.jar
export LIB_CP=$LIB_CP:../lib/slf4j-log4j12-1.5.5.jar
export LIB_CP=$LIB_CP:../lib/ojdbc6.jar
export LIB_CP=$LIB_CP:../lib/sun.misc.base64decoder.jar
export LIB_CP=$LIB_CP:../lib/commons-lang-2.6.jar
export LIB_CP=$LIB_CP:../lib/commons-logging-1.2.jar
export LIB_CP=$LIB_CP:../lib/gson-2.8.0.jar
export LIB_CP=$LIB_CP:../lib/httpcore-4.4.10.jar
export LIB_CP=$LIB_CP:../lib/httpcore-osgi-4.3-beta2-sources.jar
export LIB_CP=$LIB_CP:../lib/javax.mail.jar
export LIB_CP=$LIB_CP:../lib/lmsp-common-4.12.1.jar
export LIB_CP=$LIB_CP:../lib/org.apache.httpcomponents.httpclient_4.5.6.jar
export LIB_CP=$LIB_CP:../lib/dom4j-1.6.1.jar
# setup JAVA VM ARGMENT (-Xms -Xmx)
export JAVA_OPTS=-Xmx512M
# start job
java $JAVA_OPTS -cp $LIB_CP com/util/msg/ExpressDeamon
添加如下即可
export LIB_CP=$LIB_CP:…/lib/dom4j-1.6.1.jar