2013-07-13 63 views
0

我使用的是Ubuntu 12.04,我試圖在命令行上運行Java程序。運行可執行文件時拋出java.lang.NoClassDefFoundError

,距離著名的編程面試書的程序,破解編碼採訪,和目錄和java文件的結構可以在

https://github.com/gaylemcd/ctci/tree/master/java

這裏可以看出,我正在Chapter 2/Question2_5/QuestionB.java,和我使用LinkedListNode.java類CtCILibrary目錄,我還需要Chapter 2/Question2_5/PartialSum.java

我使用編譯命令

Chapter 2/Question2_5目錄,並編譯QuestionB.java
javac -cp .:../../CtCiLibrary/CtCILibrary/LinkedListNode.java ./PartialSum.java QuestionB.java 

並編譯它(花了一段時間才能找出編譯命令),並創建了QuestionB.class文件。

我跑java QuestionB,但它拋出一個錯誤,

Exception in thread "main" java.lang.NoClassDefFoundError: QuestionB (wrong name: Question2_5/QuestionB) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
Could not find the main class: QuestionB. Program will exit. 

有這麼多的引用,當我擡起頭來對谷歌,但他們沒有爲我工作。

誰能告訴我如何運行?

+0

NoClassDefFoundError表示您的類路徑已損壞。 –

+0

這就是我仰望Google時所閱讀的內容。如果你能指定我做錯的地方,那將會很有幫助。這是我第一次在命令行中運行Java,所以我非常困惑。 (我只在命令行/ vim中使用C++)。謝謝。 – user2418202

+0

您可以查看https://github.com/gaylemcd/ctci/tree/master/java/Chapter%202/Question2_5並告訴我如何在該目錄中編譯並運行QuestionB.java?我檢查了最上面的目錄,所以目錄的結構完全一樣 – user2418202

回答

0

你沒有說你從哪個目錄運行java命令。因爲你沒有指定類路徑,它將在當前目錄(我相信)和環境下的類路徑中查找命令。確保該文件(縣)都可以在類路徑中適合自己的包目錄

    • (如果再在當前目錄中沒有包名)

    希望這提供了一些幫助。

  • +0

    我編譯和第2章/ Question2_5目錄運行程序(我已經指出它上面) – user2418202

    +0

    它看起來像你的鏈表類不會在類路徑中,如果你沒有做什麼,讓它如此。問題b類需要這樣才能正常運行 – LhasaDad

    +0

    您可以查看https://github.com/gaylemcd/ctci/tree/master/java/Chapter%202/Question2_5並告訴我如何編譯並運行QuestionB.java那個目錄?我檢出了頂層目錄,所以目錄結構完全一樣 – user2418202