Java类加载时常见错误分析

    在执行Java程序的时候常常都会遇到ClassNotFoundException和NoClassDefFoundError这两个错误,它们都和类加载异常有关。

    ClassNotFoundException

    这个异常常常发生在显式加载一个类的时候,通常有以下三种方式会显式加载类。

  •     Class.forName("className")方法
  •     ClassLoader.loadClass("")方法
  •     ClassLoader.findSystemClass()方法

    出现这类错误的原因就是当JVM要去指定的路径下加载这个类的字节码文件时,找不到这个文件对应的字节码,解决办法是去检查当前的classpath下是否存在该文件。如果不知道当前的classpath可以使用System.out.println(this.getClass().getClassLoader().getResource(""))来查看。

   NoClassDefFoundError

    这个错误在Java源代码注释中有提到出现该错误可能的情况是使用new表达式、属性引用某个类、继承了某个接口或类、以及方法中的某个参数引用了某个类这时会触发JVM隐式加载这些类时发现这些类不存在的异常,解决办法是确保引用的每个类都在当前的classpath下面。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值