当我尝试在命令下面运行jar时,我得到ClassNotFoundException
:
java -jar MyJar.jar
我用eclipe创建了jar。 MyJar 取决于其他几个罐子。我在ecplise中看到所有这些其他罐子都在 classpath 中。
我还使用export classpath将这些jar添加到 Unix 中的类路径中。但我仍然得到ClassNotFoundException。
异常堆栈跟踪:
Exception in thread "main" java.lang.NoClassDefFoundError: org.apache.hadoop.conf.Configuration
at com.a.HDFSCopy.readURI(HDFSCopy.java:16)
at com.a.CopyMain.main(CopyMain.java:9)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration
at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
at java.lang.ClassLoader.loadClass(ClassLoader.java:660)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
at java.lang.ClassLoader.loadClass(ClassLoader.java:626)
... 2 more
之前的课程路径:
/opt/ibm/biginsights/IHC/lib/biginsights-gpfs-1.1.1.jar:/opt/ibm/biginsights/IHC/hadoop-core.jar:
类路径之后(包括依赖项所需的jar的位置):
[biadmin @ big-instght-15~] $ echo $ CLASSPATH /opt/ibm/biginsights/IHC/lib/biginsights-gpfs-1.1.1.jar:/opt/ibm/biginsights/IHC/hadoop-core.jar::/home/biadmin/hadoop_jars/commons-logging-1.1。 1.jar:/home/biadmin/hadoop_jars/commons-configuration-1.8.jar:/home/biadmin/hadoop_jars/commons-lang-2.4.jar
但是,我意识到如果我打开一个新终端并回显$ CLASSPATH,它只会显示Class Path Before。它没有反映我对类路径所做的更改。即它没有显示Class Path After。
如何解决这个问题?
谢谢,
玛哈拉卡斯
答案 0 :(得分:1)
MANIFEST.MF
中列出的主要课程是什么?如果你解开jar,它是否在jar文件的正确位置?