2011-02-24 110 views
3

編譯我的Java應用程序,我從終端使用:Java的:異常在線程 「主要」 java.lang.NoClassDefFoundError

javac -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar CollectionIndexer.java 

要運行我使用的應用程序:

java -classpath commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar CollectionIndexer 

不過我得到以下錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: commons-digester-2/1/commons-digester-2/1/jar:lucene-core-3/0/3/jar 
Caused by: java.lang.ClassNotFoundException: commons-digester-2.1.commons-digester-2.1.jar:lucene-core-3.0.3.jar 
    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) 

我想我正確定義類路徑..或什麼?

回答

1

嘗試-cp而不是classpath。還要將當前目錄添加到類路徑中。

$ java -cp .:commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar CollectionIndexer 

$ export CLASSPATH=.:commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar 
$ java CollectionIndexer 

如果在Windows上,使用反斜槓和分號分隔符:

java -cp .;commons-digester-2.1\commons-digester-2.1.jar;lucene-core-3.0.3.jar CollectionIndexer 
+1

完全一樣 – aneuryzm 2011-02-24 09:09:11

+0

@Patrick查看我的更新。你用什麼java版本?我假設你在Unix上? – dogbane 2011-02-24 09:12:46

0

我建議你用

SET第一設置類路徑CLASSPATH命令,然後執行您的程序爲

java CollectionIndexer。

+0

完全一樣的問題。設置CLASSPATH = commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar然後:java CollectionIndexer – aneuryzm 2011-02-24 09:11:30

相關問題