執行錯誤:ClassNotFoundException
阿新 • • 發佈:2018-12-18
異常資訊:C:/java>javac ab.javaC:/java>java abException in thread "main" java.lang.NoClassDefFoundError: abCaused by: java.lang.ClassNotFoundException: ab at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)C:/java>原因: 當前目錄並未在CLASSPATH裡面解決方案: 使用C:/java>java -cp . ab就可以了。其中的 -cp . 是java的標準引數,等於 -classpath . 也就是把當前目錄加入CLASSPATH我們看一下java的命令列引數,其中 -cp <class search path of directories and zip/jar files> -classpath <class search path of directories and zip/jar files> A ; separated list of directories, JAR archives, and ZIP archives to search for class files.第二種情況,缺少某個jar裡面的類,比如你的程式用到了Spring.jar 則在命令列可以這樣執行c:/java>java -cp.;c:/lib/spring.jar ab如果spring.jar還依賴別的類庫,就繼續在後面書寫完整的jar路徑就行了。在Windows下面用分號分隔,在Linux下面用冒號分割。