- 浏览: 437060 次
- 性别:
- 来自: 芜湖
文章分类
- 全部博客 (188)
- 架构 (28)
- 数据库 (8)
- WEB开发 (30)
- 项目管理 (22)
- 敏捷开发 (11)
- 测试 (5)
- JAVA (30)
- 其它 (2)
- SPRING (13)
- 改BUG (4)
- 读书 (2)
- 小工具 (3)
- 杂文 (0)
- XQuery (1)
- JAVA虚拟机 (1)
- maven (8)
- weblogic (4)
- GIT (6)
- LINUX (9)
- JENKINS (1)
- NEXUS (0)
- webservice (3)
- TOMCAT (4)
- JBOSS (1)
- 管理 (1)
- STRUTS (3)
- ehcache (1)
- android (4)
- apache (3)
- NGINX (6)
- 产品经理 (2)
- HIBERNATE (2)
- JPA (1)
- freemarker (4)
- SPRING MVC (4)
- JQUERY (7)
- oracle (1)
- SSO (4)
- 移动开发 (2)
- IntelliJ IDEA (2)
- 草稿 (0)
- quartz (1)
- xpath (1)
- selenium (2)
- swing (4)
- JAVA 线程 (3)
- proguard (1)
- 大数据 (3)
- Flume (2)
- scala (1)
- json (1)
- dubbo (1)
- kettle (1)
- FastDFS (1)
- memcached (1)
- 物联网 (4)
- mysql (1)
最新评论
-
hefengjun1:
还有屌丝啊
团队需要的6种人 -
z390174504:
非常好啊......
maven中把依赖的JAR包一起打包 -
lq675964355:
为什么我执行(生成的不以-jar-with-depend ...
maven中把依赖的JAR包一起打包 -
phoenix5870:
怒赞一个!!!很棒!
maven中把依赖的JAR包一起打包 -
string2020:
关键是,我想mvn package就打包好,请问,怎么做
maven中把依赖的JAR包一起打包
项目中遇到一个defect。
代码所示:
出错提示在xxxMethod()方法这里,总是报NoClassDefFoundError
经调试,是class被jvm首次加载时,初始化静态定义时出了错,是XXXUtil类没有method方法,即NoSuchMethodException,但是LOG日志并未直接写出来。
代码编译通过,运行出错,原因是XXXUtil过期,未被服务器加载到最新的代码所致。
通过此defect又重温了一遍java class类加载机制。
http://onjava.com/pub/a/onjava/2005/01/26/classloading.html
代码所示:
class Singleton { static { this.variable = XXXUtil.method(); } private Singleton instance = new Singleton(); public static Singleton getInstance() {...} } class XXXInvokeClass { void xxxMethod() { Singleton.getInstance(); } }
出错提示在xxxMethod()方法这里,总是报NoClassDefFoundError
经调试,是class被jvm首次加载时,初始化静态定义时出了错,是XXXUtil类没有method方法,即NoSuchMethodException,但是LOG日志并未直接写出来。
代码编译通过,运行出错,原因是XXXUtil过期,未被服务器加载到最新的代码所致。
通过此defect又重温了一遍java class类加载机制。
http://onjava.com/pub/a/onjava/2005/01/26/classloading.html
发表评论
-
Java的clone():深复制与浅复制
2018-09-05 17:27 379Java中要想自定义类的 ... -
java http java.security.ProviderException: java.security.KeyException
2016-07-12 18:47 1443Google Bait This post isn't a ... -
JAVA clone 复制 inputstream
2016-05-20 15:47 1642ByteArrayOutputStream baos = n ... -
Java总结篇系列:Java多线程
2016-05-17 12:54 469多线程作为Java中很重 ... -
运用 BoxLayout 进行 Swing 控件布局
2016-05-03 12:30 364引言 在用户使用 Java Swing 进行用户界面开发过 ... -
SWING实现像QQ一样,在右下角弹出提示框
2016-05-01 11:33 389像QQ一样,在右下角弹出提示框,重点就是提示窗口的屏幕定位。 ... -
jar命令的用法详解
2016-04-28 12:25 451[转:http://www.jb51.net/a ... -
解读JAVA 的ClassLoader
2016-02-15 10:52 566[转:http://www.iteye.com/top ... -
百万级访问网站前期的技术准备
2016-01-28 14:49 440作为一个技术从业者十年,逛了十年发现有些知识东一榔头西一棒槌的 ... -
JAVA,导出CSV,设最大行数限制,使用winzipaes压缩成带密码的zip文件
2015-05-03 11:27 2547[转:http://blog.csdn.net/lian_z ... -
JAVA SWING 漂亮的框架
2015-04-21 20:10 853http://www.iteye.com/problems ... -
struts2采用convention-plugin实现零配置
2015-01-28 14:38 611转[http://javeye.iteye.com/blog ... -
显示CLASS源于哪个JAR包
2015-01-26 15:03 720在编程的时候如果在工程中无意中导入多个同样的jar文件,只是 ... -
Servlet 3.0 新特性详解
2014-11-25 10:47 647转【http://www.ibm.com/devel ... -
JAVA获取计算机CPU、硬盘、主板、网络等信息
2014-11-01 22:06 1512l转[http://www.cnblogs.com/jife ... -
java读取文件和写入文件的方式
2014-09-13 12:28 624[转:http://jaczhao.iteye.com/bl ... -
java 实现调用链接并获取返回值
2013-10-22 16:10 0URL u = null; HttpURLConnec ... -
Eclipse中启动JBoss 5.1 报Deployment "AttachmentStore" 错误
2013-10-15 14:19 1716今天在Eclipse中启动JBoss 5.1时遇到这样的一个 ... -
java调用OPENSSL生成双向SSL的WEB-SERVICE
2013-06-25 21:34 5769上一篇提到在NGINX中配置了双向SSL的验证, 签名信息 ... -
JAVA对称加密算法
2013-05-28 16:02 870[转:http://liulang203.iteye.com ...
相关推荐
Java 类加载机制是Java语言的核心特性之一,它允许程序在运行时动态地加载和执行类。这个机制在Java 1.0版本时引入,最初是为了支持Java Applet,即可以在Web浏览器中运行的小型Java应用程序。随着时间的发展,类...
Java 类加载器是Java语言的核心特性之一,它允许程序在运行时动态地加载类到Java虚拟机(JVM)中。这一特性对于实现模块化、插件化和动态部署等功能至关重要。类加载器的设计遵循“分层加载”原则,形成了一个树状的...
正确理解类加载器能够帮你解决NoClassDefFoundError和java.lang.ClassNotFoundException,因为它们和类的加载相关。类加载器通常也是比较高级的JAVA面试中的重要考题,JAVA类加载器和工作原理以及classpath如何运作...
1. **加载**:加载阶段,类加载器找到指定类的字节码,这可以通过读取磁盘上的.class文件或从网络上获取。 2. **验证**:确保字节码符合Java语言规范,不会对JVM造成危害。 3. **准备**:分配内存并初始化静态变量的...
正确理解类加载器能够帮你解决 NoClassDefFoundError 和 java.lang.ClassNotFoundException,因为它们和类的加载相关。类加载器通常也是比较高级的 Java 面试中的重要考题,Java 类加载器和工作原理以及 classpath ...
但是,不恰当的类加载器使用可能导致`ClassNotFoundException`和`NoClassDefFoundError`等错误,因此理解和掌握类加载器的工作原理对于处理这些问题至关重要。 总之,深入理解Java类加载机制对于Java程序员来说非常...
1. **加载**:这是类加载的第一步,JVM通过类加载器找到对应的.class文件。类加载器分为引导类加载器、扩展类加载器和应用程序类加载器,它们按照双亲委派模型工作,保证了类的唯一性。 2. **验证**:验证是确保....
在实际项目中,我们可以通过控制类加载时机、使用动态代理、优化类路径等方式进行性能调优。例如,通过延迟加载(Lazy Loading)减少启动时的资源占用,或者通过CGLIB等库实现运行时代码生成。 总结,JVM类加载...
Java编程中的`java.lang.NoClassDefFoundError: org/jboss/logging/`是一个常见的运行时错误,通常发生在尝试执行一个类时,JVM无法找到在编译时已经存在的类定义。这个错误并不意味着类在编译期间不存在,而是表明...
JVM类加载跟踪器,用于排查jar包冲突、类冲突、类版本冲突、NoClassDefFoundError、ClassNotFoundException 等等类加载相关问题的辅助工具
这表明在Spring Web应用上下文初始化阶段,尝试加载`org.apache.commons.logging.LogFactory`类时发生了`NoClassDefFoundError`。进一步地,我们可以看到在更早的日志中有关于Apache Tomcat Native库未找到的提示,...
在Java编程中,遇到“Exception in thread 'main' java.lang.NoClassDefFoundError”是一种常见的异常情况,这通常意味着JVM在运行时未能找到指定的类定义。此错误不同于ClassNotFoundException,后者发生在尝试加载...
深入理解类加载机制对于开发高质量的 Java 应用程序至关重要,特别是在处理多层架构、模块化设计以及动态加载类等场景下。 通过上述分析,我们对 Java 中的类加载机制有了更深入的理解,这对于解决常见的 `...
Java 类加载器(ClassLoader)是Java虚拟机的重要组成部分,它负责将Java字节码(.class文件)加载到JVM中并转化为`java.lang.Class`的实例,使得我们能够运行Java程序。Java的类加载机制遵循双亲委托模型,这是一种...
ClassNotFoundException是在编译的时候在classpath中找不到对应的类而发生的错误,而NoClassDefFoundError是在JVM在动态运行时,根据你提供的类名,在classpath中找到对应的类进行加载,但当它找不到这个类时,就...
这个错误很容易让人误解为是`ClassNotFoundException`,但实际上它们之间有区别:`ClassNotFoundException`是在类加载器尝试加载特定类但找不到对应的.class文件时抛出的,而`NoClassDefFoundError`则是在类已经被...
4. **类的查找过程**:JVM根据`classpath`指定的路径查找类文件,通过`-verbose:class`选项可以观察类的加载过程。 理解这些概念对于解决Java开发中的类加载问题非常重要。希望本文能够帮助开发者更好地理解和解决...
这个错误通常意味着在编译期间能够找到类的定义,但在运行时却无法加载该类。本文将深入探讨这个问题,特别是在Android环境中如何解决`java.lang.NoClassDefFoundError: android/os/PersistableBundle`这个特定错误...
1. **类加载器机制**:NoClassDefFoundError通常由于类加载器的问题引起,比如父类加载器尝试加载子类加载器才能找到的类。WebLogic遵循"parent-first"策略,优先从系统类路径加载类,但可通过`prefer-web-inf-...
在Java虚拟机(JVM)中,类装载器(ClassLoader)是至关重要的组成部分,它负责查找和加载Java类到JVM内存中。本教程聚焦于深入理解JVM内核,特别是类装载器的原理、诊断与优化。在这个第六部分中,我们将探讨以下几...