我使用的是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.
有這麼多的引用,當我擡起頭來對谷歌,但他們沒有爲我工作。
誰能告訴我如何運行?
NoClassDefFoundError表示您的類路徑已損壞。 –
這就是我仰望Google時所閱讀的內容。如果你能指定我做錯的地方,那將會很有幫助。這是我第一次在命令行中運行Java,所以我非常困惑。 (我只在命令行/ vim中使用C++)。謝謝。 – user2418202
您可以查看https://github.com/gaylemcd/ctci/tree/master/java/Chapter%202/Question2_5並告訴我如何在該目錄中編譯並運行QuestionB.java?我檢查了最上面的目錄,所以目錄的結構完全一樣 – user2418202