Java 打包可执行 jar 时遇到 noclassdeffounderror 异常
问题
在使用 gradle 将 java 项目打包成可执行 jar 时,出现了以下异常:
该第三方 jar 包的结构如下:
立即学习“Java免费学习笔记(深入)”;
javax └── xml └── transform ├── e └── ..其他类...
在 idea 中运行代码时没有报错,但在打包为 jar 后并通过 java -jar test.jar 运行时遇到了错误。
分析与解答
错误提示表示找不到类 javax/xml/transform/e,而 jar 包中的路径应该是 javax.xml/transform/e。这可能是由于:
原因:jdk 版本不兼容
初始使用的 jdk20 版本中,java.xml.transform 包可能已经不再支持。
解决方案:
切换到 jdk1.8 版本,该版本仍支持 java.xml.transform 包。