java.lang.NoClassDefFoundError: Could not initialize class xxx
感慨:啊啊啊啊啊啊啊啊啊啊,这个问题弄了我好久,整整一天!!!
概述:原本是调用公司自己写的jar包的工具类。在其他项目都能调用,一模一样的套用过来就是不行。问了一些同事他们也不知道怎么解决。
然后百度上网查资料,网上大多数都是说jar包冲突,或者读不到配置文件,静态方法什么的。因为这是公司内部写的工具jar包,应该不会存在冲突的。我还是
检查了jar包,因为我另外一个项目调这个方法是没问题的。所以我把j整个项目的jar包几乎改成和另外一个项目一样的。还是没用(中途包括网上查的先降级在升级jar什么的,都试过)。
项目重启,各种clean install 重新编译还是没用。真的是奇了怪了。
网上说读不到配置文件。我看了我那个工具类,他虽然是有配置文件,但是也是配置在他jar包里面的,无需我配置啊。再说了我另外一个可以运行的项目也没配置其他的。百思不得其解。
在已经放弃的边缘,我想说,实在不行换种方式实现吧!
因为我另外一个项目一样的用法是没有问题的,所以我几乎对比了这个两个项目的所有不同点。能保持一样的都保持一样了。
其中有个问题,我们的项目都是springboot,在启动类那里,
//原本没问题的项目
@ComponentScan("aaa.bbb.ccc")
//报错的项目
@ComponentScan
开始的时候知道这里不同,但是每太注意,因为
@ComponentScan的作用是扫描其包所在的位置下面的所有包
@ComponentScan("aaa.bbb.ccc")的作用是扫描指定路径下的所有包 然后感觉也没问题,就没太注意。
但是,当你很绝望的时候,什么都要去试一下的。
然后我把这里也改成了一样。就可以了!!!! 最后就知道为什么了 原因就是
我们公司的默认路径都是
aaa.bbb.ccc.项目名(ddd).启动类(App.java)
@ComponentScan没配置扫描路径的时候,就是扫描 aaa.bbb.ccc.项目名(ddd) 下的包
而
@ComponentScan("aaa.bbb.ccc")确实扫描的 aa.bbb.ccc 下的包,没有 项目名(ddd)这一层 而我调用的公用工具包是公司自己写的,都是以公司的名称命名的,所以那些配置文件都是放到 aaa.bbb.ccc 下的
没有项目名(ddd)。@ComponentScan不指定路径的话,是扫描不到工具jar包里面的类的(扫描不到类,意味着他们的注解是不可以用的),就会导致他们读不到配置文件,
所以在调用静态方法的时候,就会报 java.lang.NoClassDefFoundError: Could not initialize class xxx 所以,最终问题确实是归结到 静态代码块读不到 配置文件的内容!!!!
java.lang.NoClassDefFoundError: Could not initialize class xxx的更多相关文章
- java.lang.NoClassDefFoundError: Could not initialize class xxx 原因
一.问题及原因 程序里有个工具类,主要是调用它的静态方法来发送mq. 调用场景如下: 结果这两天报了个错: java.lang.NoClassDefFoundError: Could not init ...
- hibernate 解决 java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.xxx 这类的问题
<!-- 解决 java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.intern ...
- java.lang.NoClassDefFoundError: Could not initialize class异常处理
借鉴:http://blog.csdn.net/sleepdancer/article/details/9207425 static { InputStream in = XXX.class.getR ...
- Java 上传文件到 SFTP 抛异常 java.lang.NoClassDefFoundError: Could not initialize class sun.security.ec.SunEC 的解决办法
最近从 Op 那里报来一个问题,说是SFTP上传文件不成功.拿到的 Exception 如下: Caused by: java.lang.NoClassDefFoundError: Could not ...
- 异常:Caused by: java.lang.NoClassDefFoundError: Could not initialize class net.sf.log4jdbc.Properties
参考文章: 使用Log4jdbc-log4j2监听MyBatis中运行的SQL和Connection 使用 log4jdbc格式化输出SQL,maven配置如下: <dependency> ...
- java.lang.NoClassDefFoundError: Could not initialize class net.sf.json.util.JSONUtils
页面报错: root: java.lang.NoClassDefFoundError: Could not initialize class net.sf.json.util.JSONUtils 出错 ...
- 异常-----java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.core.KeyFactory
SSH 类库问题 java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer2009- ...
- java.lang.NoClassDefFoundError: Could not initialize class org.jfree.chart.JFreeChart
最近在进行利用jfreechart生成图表时发现,项目在本地运行的好好的,一部署到服务器(linux系统)上就不行,报这样的错误: java.lang.NoClassDefFoundError: Co ...
- exception java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
exception java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironmen ...
随机推荐
- Anti Pattern - ThreadLocal variables with Thread Pool(转)
In a previous post, I wrote the usage and benefits of ThreadLocal based instance variables in concur ...
- Python - Django - 模板语言之 Tags(标签)
标签使用 {% %} 注释语句:{# #} for 循环: views.py: from django.shortcuts import render, redirect, HttpResponse ...
- 一些Python中的二维数组的操作方法
一些Python中的二维数组的操作方法 这篇文章主要介绍了一些Python中的二维数组的操作方法,是Python学习当中的基础知识,需要的朋友可以参考下 需要在程序中使用二维数组,网上找到一种这样的用 ...
- 提示不是内部或外部命令-Java的jdk、JRE包
因为要测试后台程序的功能,所以要先安装Java的jdk包,配置环境变量. 首先要安装jdk和jre,才是完整的,只安装其中一个的话,在cmd命令行输入“JAVAC”会提示“不是内部或外部命令” 目前最 ...
- jvm(1)---java内存结构
jvm主要由三个子系统构成:类加载子系统,运行时数据区,执行引擎 运行时数据区主要包括: 1.本地方法栈:登记native方法,执行时加载本地方法库 2.程序计数器:就是一个指针,用来存储指向下一条执 ...
- 学习Ajax小结
Ajax 学习 1.ajax的概念 局部刷新技术,不是一门新技术,是多种技术的组合,是浏览器端技术 2.作用 可以实现 ...
- 038 Android Magicindicator开源框架实现viewpager底部圆形指示器
1.Magicindicator介绍 Magicindicator是一个强大.可定制.易扩展的 ViewPager 指示器框架.是ViewPagerIndicator.TabLayout.PagerS ...
- [SQL] - 报表查询效率优化
背景 系统将数据对象JSON序列化后存放到数据库字段中.Report 模块需要获取实时数据对象数值,当前在SQL中进行数值判断的耗时长,效率低. 分析 当前执行效率低主要是程序结构设计的不合理. SQ ...
- eclipse设置text file encoding UTF-8和文件的换行符 Unix 格式
阿里华山版java开发手册代码格式第10条: 步骤:1.Window - Preferences, 2.左边选择 General - Workspace , 3.右边Text file encodin ...
- PAT甲级 链表题_C++题解
链表处理 PAT (Advanced Level) Practice 链表题 目录 <算法笔记> 重点摘要:静态链表 1032 Sharing (25) 1052 Linked List ...