2013-05-14 24 views
0

我在控制檯執行程序時遇到問題。它總是拋出java.lang.NoClassDefFoundError,但是如果我使用netbeans運行相同的應用程序,它完美地工作。我該怎麼辦?使用控制檯時的java.lang.NoClassDefFoundError

+0

你有沒有建立你的應用程序? –

+0

你是否設置了'CLASSPATH'? IDE爲你做,但在外面是你的責任。 –

+0

您需要將依賴關係添加到類路徑,例如java -classpath「。; c:\ project \ *」MyJavaProg – NullPointerException

回答

0

通過在運行Java程序時提供選項「-cp」或「-classpath」,可以在Java中添加classpath。

設置CLASSPATH出現如下圖所示:

Set CLASSPATH=.;/com/test/classes 

java -cp $CLASSPATH Test 

默認情況下,Java類路徑指向由表示當前目錄 「」它只會在當前目錄中查找任何類。

+0

問題是我沒有使用任何外部類。 – alessio

+0

@alessio你可以發佈完整的stacktrace嗎? – JamesB

0

您的類路徑設置不同,即當您從控制檯運行相同的代碼時,NetBeans中類路徑上的jar(s)不在類路徑中。

快速的代碼片段,輸出的是在classpath:

ClassLoader cl = ClassLoader.getSystemClassLoader(); 

URL[] urls = ((URLClassLoader)cl).getURLs(); 

for(URL url: urls){ System.out.println(url.getFile()); } 

從控制檯上,使用-cp選項,添加必要的罐子。