六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 53|回复: 0

运行错误:ClassNotFoundException

[复制链接]

升级  10.8%

386

主题

386

主题

386

主题

探花

Rank: 6Rank: 6

积分
1216
 楼主| 发表于 2013-1-27 04:45:15 | 显示全部楼层 |阅读模式
异常信息:
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下面用冒号分割。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表