java命令行運行錯誤:ClassNotFoundException【轉】


原文地址:http://blog.csdn.net/java2000_net/article/details/3044400

異常信息:
C:/java>javac ab.java

C:/java>java ab
Exception in thread "main" java.lang.NoClassDefFoundError: ab
Caused 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下面用冒號分割。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM