java.lang.NoClassDefFoundError: org/openjdk/jol/info/ClassLayout
Maven Dependency Scopes
使用 jol-core 打印对象头的信息
pom.xml
<dependencies><dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-core</artifactId><version>0.14</version><scope>provided</scope></dependency>
</dependencies>
public class BiasedLocking {static class MyThread extends Thread {static final Object lock = new Object();@Overridepublic void run() {for (int i = 0; i < 3; i++) {synchronized (lock) {// 打印锁对象的布局System.out.println(ClassLayout.parseInstance(lock).toPrintable());}}}}public static void main(String[] args) {MyThread mt = new MyThread();mt.start();}
}
异常信息
Exception in thread "Thread-0" java.lang.NoClassDefFoundError: org/openjdk/jol/info/ClassLayoutat test.syn.BiasedLocking$MyThread.run(BiasedLocking.java:22)
Caused by: java.lang.ClassNotFoundException: org.openjdk.jol.info.ClassLayoutat java.net.URLClassLoader.findClass(URLClassLoader.java:382)at java.lang.ClassLoader.loadClass(ClassLoader.java:418)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)at java.lang.ClassLoader.loadClass(ClassLoader.java:351)... 1 more
原因
scope=provided
的情况,则可以认为这个provided
是目标容器已经provide
这个jar。换句话说,它只影响到编译,测试阶段。而在运行阶段,假定目标的容器(比如我们这里的tomcat容器)已经提供了这个jar包,app可以直接使用容器提供的jar,所以无需我们打包对应的jar包了。
相当于,运行时不会找 provided
修饰的依赖。
解决
移除 <scope>provided</scope>
即可,使用默认的 scope=compile
。
对于
scope=compile
的情况(默认scope),也就是说这个项目在编译,测试,运行阶段都需要这个jar包在classpath中。
java.lang.NoClassDefFoundError: org/openjdk/jol/info/ClassLayout相关推荐
- NoClassDefFoundError: org/openjdk/jol/info/ClassLayout
NoClassDefFoundError: org/openjdk/jol/info/ClassLayout 版本: 案发现场: 解决方案: 选择合适的jar包 将Jar包放到项目中 新建一个lib文 ...
- 如何解决java.lang.NoClassDefFoundError:Java 9中的javax / xml / bind / JAXBException
本文翻译自:How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java 9 I have s ...
- java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
今天执行 flutter doctor -v 的时候发现一个问题,提示信息是 [!] Android toolchain - develop for Android devices (Android ...
- java.lang.NoClassDefFoundError: javax/activation/DataSource
文章目录 1.降低JDK版本 2.添加某些用户使用 mailR 包所需的 jar 文件 3.总结 1.降低JDK版本 我之前安装了Java8的笔记本电脑上工作正常, 我刚刚得到了一台全新的台式电脑,安 ...
- maven命令行创建web项目报错:java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils...
早上新建一个web项目,没想到一敲命令创建就失败了,真是出师不利.各种折腾无果,当然我也可以用eclipse直接创建的,就是想搞清楚状况.刚刚才发现问题原因,这个结果我也是醉了,太坑爹了. 问题现象: ...
- SpringBoot 项目tomcat插件启动报错 java.lang.NoClassDefFoundError: javax/el/ELManager
问题描述: SpringBoot项目 tomcat插件启动出现下面的问题: ERROR 2021-04-07 08:42:03,129 org.springframework.boot.SpringA ...
- Caused by: java.lang.NoClassDefFoundError: redis/clients/util/Pool
严重: Exception sending context initialized event to listener instance of class org.springframework.we ...
- exception in thread main java.lang.noclassdeffounderror wrong name
不含包层次的HelloWorld.java public class HelloWorld{ public static void main(String[] args) { System.out.p ...
- DRP问题集结(一)-Tomcat无法启动,报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory...
问题一: Tomcat无法启动,报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory 问题二:[Error]Jav ...
最新文章
- 3年5000家,苏宁小店如何立足“中国第一O2O社区小店”?
- 用python写脚本看什么书-你用 Python 写过哪些有趣的脚本?
- Greys Java在线问题诊断工具
- 中小学计算机教室设备维修记录,多媒体电教室的管理与设备的维护
- wget: unable to resolve host address “mirrors.163.com” 的解决办法
- [译] APT分析报告:04.Kraken - 新型无文件APT攻击利用Windows错误报告服务逃避检测
- @data注解不生效_面试官:你经常在SpringBoot中使用的条件注解底层是如何实现的?你了解过吗?...
- fasttext 文本分类_一文综述经典的深度文本分类方法
- 公开说说别人看不到_当听到别人在说自己坏话时,心里是什么感受?
- Java基础---常用类之Arrays工具类+基本类型的包装类
- C# Struct的内存布局
- 虚拟机不能上网以及无法ping通百度的解决方案
- adoption/adaption
- 华为路由器OSPF基础配置命令
- ps图标长投影如何做?
- MyEclipse详解
- 阿里、百度、搜狐等公司社招面试记录与总结
- 记——博客后台管理系统
- kali虚拟机网络配置
- 什么是分布式事务Seata?Seata的几种事务模式详解
热门文章
- javaScript解决浏览器兼容问题,判断浏览器是ie或者Chrome
- 查看或修改mysql数据库及表编码格式
- C# winform设置开机启动
- java xmap_使用XMAP完成JavaBean和XML之间转换
- 【论文写作】LaTeX排版工具 | 写给初学者的一篇容易上手的文档
- 计算机PPT中项目编号怎么弄,电脑技巧收藏家电脑基础设置幻灯片格式:项目符号和编号...
- 学习笔记:使用endnotesX9插入参考文献
- spring加载xsd文件
- VSCode全配置(c++、unity、html...等配置和好用设置,持续更新)
- 数据模型建设-维度建模详解