Java 打包后出现 NoClassDefFoundError 的原因和解决方法
在 Java 中引入第三方 JAR 包时,将项目打包成可执行 JAR 文件并运行时,可能会遇到 NoClassDefFoundError 的错误。通常是因为类文件的路径不正确。
问题现象和原因
根据题主描述,在 idea 中运行代码时没有问题,但在打包成 JAR 后运行时出现了 NoClassDefFoundError:javax/xml/transform/e 的错误。这是因为 JAR 包中的类路径错误,应该是 javax/xml/transform/e,但打包后的 JAR 中却是 javax.xml/transform/e。
立即学习“Java免费学习笔记(深入)”;
解决方案
这个问题的解决方法是切换到 JDK 1.8 版本。这是因为在 Java 20 及以上版本中,javax.xml.transform 包已不再受支持。因此,使用 JDK 1.8 可以避免此类错误。