运行jar时ClassNotFoundException

时间:2014-05-31 21:14:42

标签: java linux eclipse unix jar

当我尝试在命令下面运行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。

如何解决这个问题?

谢谢,

玛哈拉卡斯

1 个答案:

答案 0 :(得分:1)

MANIFEST.MF中列出的主要课程是什么?如果你解开jar,它是否在jar文件的正确位置?