- 浏览: 188025 次
- 性别:
- 来自: 上海
文章分类
最新评论
首先从名字上可以看出一类是异常,一类属于错误。异常可以通过异常处理机制使程序继续运行,但出现错误必然找出程序崩溃。
这个问题是和java 类的加载相关的。类加载的时候先要把编译好的类文件(.class ,jar包等)加载JVM管理的方法区当中,这个过程叫做加载,如果这个过程中没找类文件就会出现ClassNotFoundException。如果加载成功之后,会有一个该类的类对象(class对象)。想方法类,就通过这个类对象,当在内存当中没有找到这个类对象,就会出现NotClassDefFoundError。
1.ClassNotFoundException:
这类异常出现在对类进行加载时,该路径下找不到对应的class文件。有以下情况:
1.通过Class.forName()加载类。
2.通过类加载器ClassLoader加载loadClass(),或者findSystemClass()。
如下代码:
[java] view plain copy
在CODE上查看代码片派生到我的代码片
package abs;
[java] view plain copy
在CODE上查看代码片派生到我的代码片
public class Main {
public static void main(String arg[]) throws Exception {
Class.forName("Main");
}
}
就会出现:
Exception in thread "main" java.lang.ClassNotFoundException: Main
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at abs.Main.main(Main.java:18)
这是因为在加载类的时候找不到Mian.class文件(在使用forName()加载类时需要加上包名)。将加载类的代码改成Class.forName("abs.Main")就不会发生异常了。
2.NotClassDefFoundError:
这类错误发生在运行时,通常是编译通过,但当运行时使用new参数该类对象时,找不到类的定义造成,此异常通常是由于一个类中引用了另外的一个类,而被引用的类没有被classLoader找到。如在编译好Person类后删除person.class时再运行。
[java] view plain copy
在CODE上查看代码片派生到我的代码片
public class Main {
public static void main(String arg[]) throws Exception {
Person p=new Person("xjp",20);
System.out.println(p.getName());
}
}
就会出现
Exception in thread "main" java.lang.NoClassDefFoundError: abs/Person
这个问题是和java 类的加载相关的。类加载的时候先要把编译好的类文件(.class ,jar包等)加载JVM管理的方法区当中,这个过程叫做加载,如果这个过程中没找类文件就会出现ClassNotFoundException。如果加载成功之后,会有一个该类的类对象(class对象)。想方法类,就通过这个类对象,当在内存当中没有找到这个类对象,就会出现NotClassDefFoundError。
1.ClassNotFoundException:
这类异常出现在对类进行加载时,该路径下找不到对应的class文件。有以下情况:
1.通过Class.forName()加载类。
2.通过类加载器ClassLoader加载loadClass(),或者findSystemClass()。
如下代码:
[java] view plain copy
在CODE上查看代码片派生到我的代码片
package abs;
[java] view plain copy
在CODE上查看代码片派生到我的代码片
public class Main {
public static void main(String arg[]) throws Exception {
Class.forName("Main");
}
}
就会出现:
Exception in thread "main" java.lang.ClassNotFoundException: Main
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at abs.Main.main(Main.java:18)
这是因为在加载类的时候找不到Mian.class文件(在使用forName()加载类时需要加上包名)。将加载类的代码改成Class.forName("abs.Main")就不会发生异常了。
2.NotClassDefFoundError:
这类错误发生在运行时,通常是编译通过,但当运行时使用new参数该类对象时,找不到类的定义造成,此异常通常是由于一个类中引用了另外的一个类,而被引用的类没有被classLoader找到。如在编译好Person类后删除person.class时再运行。
[java] view plain copy
在CODE上查看代码片派生到我的代码片
public class Main {
public static void main(String arg[]) throws Exception {
Person p=new Person("xjp",20);
System.out.println(p.getName());
}
}
就会出现
Exception in thread "main" java.lang.NoClassDefFoundError: abs/Person
发表评论
-
ReentrantLock与Condition
2017-03-17 14:25 526多线程和并发性并不是什么新内容,但是 Java 语言设计中的创 ... -
java linux监控
2017-03-13 17:49 481http://agapple.iteye.com/blog/1 ... -
transient和volatile两个关键字
2017-02-16 09:47 572transient和volatile两个关 ... -
java 锁机制
2016-12-09 13:43 465一段synchronized的代码被 ... -
java 正则表达式
2016-12-02 10:28 516众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字 ... -
ThreadLocal
2016-07-19 11:10 326ThreadLocal是什么 Thre ... -
java CAS
2016-07-10 14:55 328cas 乐观锁每次不锁定整个线程,在操作之前进行判断。悲观锁独 ... -
concurrenthashmap
2016-07-10 11:11 422hash table虽然性能上不如 ... -
java 线程池的使用
2016-07-10 09:52 3721. 引言 合理利用线程池能够带来三个好处。第一:降低资源消 ... -
java.util.concurrent
2016-07-03 16:24 407我们都知道,在JDK1.5之 ... -
JVM 配置 以及垃圾收集器的选择
2016-04-15 12:36 728JVM监控的关键指标说明: a) FGC的环比增加次数。Zab ... -
jvm实时监控工具
2016-04-09 09:35 459 -
哈希 、一致性哈希、余数式哈希
2016-04-07 16:10 859什么是Hash Hash,一 ... -
jvm dump 相关
2016-03-22 17:22 681http://www.cnblogs.com/edwardla ... -
深入剖析volatile关键字
2016-03-21 16:02 531深入剖析volatile关键字 ... -
java线程安全问题之静态变量、实例变量、局部变量
2016-03-08 12:52 569java多线程编程中,存在很多线程安全问题,至于什么是线程安全 ... -
有状态的bean和无状态的bean的区别
2016-03-08 11:23 1491有状态会话bean :每个用户有自己特有的一个实例,在用户的生 ... -
Java nio详解
2016-01-20 16:30 549http://www.ibm.com/developerwor ... -
java 不定长数组
2015-11-24 15:00 765在调用某个方法时,若是方法的参数个数事先无法确定该如何处理 ... -
Java stack and heap dump
2015-11-14 16:13 1057对于大型 java 应用程序来说,再精细的测试都难以堵住所有的 ...
相关推荐
Java中的`ClassNotFoundException`异常通常表示在尝试加载特定类时,JVM无法找到对应的字节码文件。这个异常可能由多种原因引起,但在本场景中,它与Java 9引入的模块系统及其对Java EE API的影响密切相关。 在Java...
在Java编程语言中,`ClassNotFoundException`是一个非常常见的运行时异常,它属于`java.lang....通过学习这些资源,你可以更好地了解如何避免和处理`ClassNotFoundException`,从而提高你的Java编程技能。
"java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver" 解决方案 [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket. 解决了jsp连接 sql server 2000的问题
在Java编程中,`java.lang.ClassNotFoundException` 是一个常见的运行时异常,通常发生在尝试通过类加载器加载指定类时,但找不到对应的字节码文件。在这个特定的问题中,`ClassNotFoundException` 引发的原因是缺少...
在Java编程中,`java.lang.ClassNotFoundException`是一个常见的运行时异常,它表示JVM尝试加载一个类时,找不到对应的.class文件。在这个特定的错误中,我们看到的是`org.apache.commons.dbcp.BasicDataSource`,这...
总的来说,解决 "java.lang.ClassNotFoundException" 的关键在于正确管理和配置项目的依赖,确保所有必要的类都能在运行时被正确加载。通过仔细检查和调整上述步骤,你应该能成功地解决这个问题并继续进行JSON转换...
然而,对于初学者来说,遇到错误是常有的事,比如“java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource”。这个异常表明在运行时,系统无法找到指定的类,即Apache Commons DBCP的...
在Java编程中,`ClassNotFoundException` 是一个常见的运行时异常,通常发生在尝试加载类时,Java虚拟机(JVM)无法找到对应的字节码文件。在本例中,问题聚焦于 "org.jdom.input.SAXBuilder" 类,这涉及到Java的...
标题《java连接HighGo DB》所要阐述的知识点主要集中在Java程序中如何连接到HighGo数据库。HighGo数据库是由瀚高基础软件股份有限公司开发的一款高性能、稳定可靠的数据库系统。在Java中进行数据库操作,通常需要...
"Android Caused by: java.lang.ClassNotFoundException解决办法" 在 Android 开发中,ClassNotFoundException 是一个常见的异常,它通常发生在应用程序启动或运行时。这个异常的出现告诉我们,Java 虚拟机无法找到...
Caused by: java.lang.ClassNotFoundException: com.sun.org.apache.xml.internal.resolver.CatalogManager at java.net.URLClassLoader.findClass(URLClassLoader.java:434) at ...
Java使用Jdbc连接Oracle执行简单查询操作示例 Java使用Jdbc连接Oracle执行简单查询操作,是指使用Java语言通过Jdbc(Java ...通过本文,读者可以了解Java中Jdbc连接Oracle数据库的基本步骤和防止SQL注入的方法。
`ClassNotFoundException` 是 Java 开发过程中常见的运行时异常,通常发生在尝试加载某个类时,系统无法在指定的类路径(ClassPath)中找到对应的 `.class` 文件。本文将深入探讨 `ClassNotFoundException` 的原因、...
在Java编程中,`ClassNotFoundException` 是一个常见的运行时异常,表示尝试加载某个类时,在类路径中找不到对应的`.class`文件。在这个特定的场景中,异常堆栈跟踪显示 `Caused by: java.lang....
`javax.xml.bind`是Java中的一个标准API,主要用于XML数据绑定,它允许Java对象和XML文档之间进行互操作。`com.sun.xml.bind.v2.ContextFactory`是这个模块的核心类,负责生成和管理Java对象与XML之间的绑定上下文。...
`ClassNotFoundException`是Java运行时环境抛出的,当JVM试图根据类名动态加载类,但在当前的类路径(Classpath)中找不到该类时,就会发生这个错误。在Eclipse插件开发中,这可能是由于以下原因造成的: 1. **类...
在Java编程中,`ClassNotFoundException` 是一个常见的运行时异常,通常表示尝试加载某个类时,在类路径中找不到该类的定义。在这个特定的场景中,异常堆栈跟踪显示了 `Caused by: java.lang.ClassNotFoundException...
深入浅出Java_Swing程序设计(高清),第二部分,分卷压缩 Swing开发入门经典教材