我写了一个java程序,main函数为drager,环境变量配置如下JAVA_HOME=/usr/java/jdk
PATH=#JAVAHOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/home/insidertracker/dataDrager/lib/sqlitejdbc-v033-nested.jar:/home/insidertracker/dataDrager/lib/log4j-1.2.15.jar:/home/insidertracker/dataDrager/lib/javapns-jdk16-161.jar:/home/insidertracker/dataDrager/lib/bcprov-jdk16-145.jar:/home/insidertracker/dataDrager/lib/commons-io-1.4.jar:/home/insidertracker/dataDrager/lib/commons-lang-2.4.jar:/home/insidertracker/dataDrager/lib/dom4j-1.6.jar我在/home/insidertracker/dataDrager/bin下面执行 , java drager 是成功的, 但是我把工程文件打包存成jar以后,再执行 java -jar dataDrager.jar drager 或者如下的shell脚本却失败 #!/bin/bash
cd /home/insidertracker/dataDrager/
/usr/java/jdk/bin/java -jar dataDrager.jar -classpath .:/usr/java/jdk/lib/tools.jar:/usr/java/jdk/lib/dt.jar:/home/insidertracker/dataDrager/sqlitejdbc-v033-nested.jar:/home/insidertracker/dataDrager/log4j-1.2.15.jar:/home/insidertracker/dataDrager/bcprov-jdk16-145.jar:/home/insidertracker/dataDrager/commons-io-1.4.jar:/home/insidertracker/dataDrager/commons-lang-2.4.jar:/home/insidertracker/dataDrager/dom4j-1.6.jar 错误提示如下:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at custom.scheduler.ConfigReader.<clinit>(ConfigReader.java:9)
at drager.main(drager.java:7)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 2 more这是什么原因?
PATH=#JAVAHOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/home/insidertracker/dataDrager/lib/sqlitejdbc-v033-nested.jar:/home/insidertracker/dataDrager/lib/log4j-1.2.15.jar:/home/insidertracker/dataDrager/lib/javapns-jdk16-161.jar:/home/insidertracker/dataDrager/lib/bcprov-jdk16-145.jar:/home/insidertracker/dataDrager/lib/commons-io-1.4.jar:/home/insidertracker/dataDrager/lib/commons-lang-2.4.jar:/home/insidertracker/dataDrager/lib/dom4j-1.6.jar我在/home/insidertracker/dataDrager/bin下面执行 , java drager 是成功的, 但是我把工程文件打包存成jar以后,再执行 java -jar dataDrager.jar drager 或者如下的shell脚本却失败 #!/bin/bash
cd /home/insidertracker/dataDrager/
/usr/java/jdk/bin/java -jar dataDrager.jar -classpath .:/usr/java/jdk/lib/tools.jar:/usr/java/jdk/lib/dt.jar:/home/insidertracker/dataDrager/sqlitejdbc-v033-nested.jar:/home/insidertracker/dataDrager/log4j-1.2.15.jar:/home/insidertracker/dataDrager/bcprov-jdk16-145.jar:/home/insidertracker/dataDrager/commons-io-1.4.jar:/home/insidertracker/dataDrager/commons-lang-2.4.jar:/home/insidertracker/dataDrager/dom4j-1.6.jar 错误提示如下:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at custom.scheduler.ConfigReader.<clinit>(ConfigReader.java:9)
at drager.main(drager.java:7)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 2 more这是什么原因?
你的main方法没有指定呀
你重新指定一下
#!/bin/bash
cd /home/insidertracker/dataDrager/
/usr/java/jdk/bin/java -jar dataDrager.jar -Xbootclasspath .:/usr/java/jdk/lib/tools.jar:/usr/java/jdk/lib/dt.jar:/home/insidertracker/dataDrager/sqlitejdbc-v033-nested.jar:/home/insidertracker/dataDrager/log4j-1.2.15.jar:/home/insidertracker/dataDrager/bcprov-jdk16-145.jar:/home/insidertracker/dataDrager/commons-io-1.4.jar:/home/insidertracker/dataDrager/commons-lang-2.4.jar:/home/insidertracker/dataDrager/dom4j-1.6.jar