我試圖編譯並運行https://github.com/samet/Coursera-Algorithms-I-Assignment-1中的PercolationVisualizer
。根據http://introcs.cs.princeton.edu/java/stdlib/,所需的依賴關係StdDraw.java
和In.java
應出現在stdlib
包中。即使添加了類路徑,也會發生Java NoClassDefFoundError
克隆庫後,我複製stdlib.jar到src
目錄,然後使用以下命令編譯PercolationVisualizer:
javac -cp .:stdlib.jar PercolationVisualizer.java
(I做了同樣爲Percolation.java
)。然而,當我嘗試運行使用java PercolationVisualizer
程序,我得到以下錯誤:
Exception in thread "main" java.lang.NoClassDefFoundError: In
at PercolationVisualizer.main(PercolationVisualizer.java:62)
Caused by: java.lang.ClassNotFoundException: In
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
我不明白的NoClassDefFoundError
爲In
,因爲它應該包括在stdlib
。誰能解釋這種行爲?
嘗試打開jar並檢查類是否真的存在,如果存在,請檢查包是否與您使用的相同。 –
'java -cp。:stdlib.jar PercolationVisualizer' –
@ [Davide](http://stackoverflow.com/users/1803853/davide-lorenzo-marino):我用'jar xf stdlib.jar'打開了jar,並且裏面確實有一個'In.java'。 –