java.lang.NoClassDefFoundError: com/artofsolving/jodconverter/openoffice/connection/SocketOpenOffice

1、问题概述?

通过openoffice将office组件转化成pdf的时候报错。

我是通过idea开发的springboot工程,在idea中运行没有问题,但是项目打包后出现了如下问题。

java.lang.NoClassDefFoundError: com/artofsolving/jodconverter/openoffice/connection/SocketOpenOfficeConnection

java.lang.NoClassDefFoundError: com/artofsolving/jodconverter/openoffice/connection/SocketOpenOfficeConnection
        at com.hazq.hazqautomatedtesting.utils.ConversionPDFUtil.doc2pdf(ConversionPDFUtil.java:49) ~[classes/:0.0.1-SNAPSHOT]
        at com.hazq.hazqautomatedtesting.controller.DefectRiskInfoController.convertDocxToPdf(DefectRiskInfoController.java:229) ~[classes/:0.0.1-SNAPSHOT]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_102]
        at sun.refl
`java.lang.NoClassDefFoundError: com/alibaba/fastjson/JSONArray` 是 Java 应用中常见的错误之一,表示 **JVM 在运行时找不到 `com.alibaba.fastjson.JSONArray` 这个类**。 ### 原因分析: 1. **缺少 FastJSON 依赖** 项目中没有正确引入 `fastjson` 的 jar 包。 2. **依赖版本冲突或被排除** 在 Maven 或 Gradle 项目中,fastjson 被其他依赖项排除或版本冲突。 3. **依赖未正确打包进应用** 构建项目时(如生成 jar 包),fastjson 没有被打包进去。 4. **类路径(classpath)配置错误** 手动添加的 jar 包未正确配置到 classpath 中。 --- ### 解决方案: #### ✅ 1. Maven 项目:添加 FastJSON 依赖 在 `pom.xml` 中添加 fastjson 依赖(以最新稳定版为例): ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.83</version> </dependency> ``` #### ✅ 2. Gradle 项目: ```groovy implementation 'com.alibaba:fastjson:1.2.83' ``` #### ✅ 3. 手动导入 jar 包(非 Maven 项目) - 下载 fastjson jar 包:https://mvnrepository.com/artifact/com.alibaba/fastjson - 放入项目 lib 目录,并添加到构建路径(Build Path)或 classpath。 #### ✅ 4. 确保依赖被打包进最终 jar 如果你使用 Maven 构建可执行 jar,确保使用 `maven-assembly-plugin` 或 `maven-shade-plugin` 将依赖打包进去。 例如使用 `maven-assembly-plugin`: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.example.MainClass</mainClass> </manifest> </archive> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> ``` 然后使用: ```bash mvn clean package ``` 生成的 jar 文件在 `target/xxx-jar-with-dependencies.jar` --- ### 示例代码(验证是否修复): ```java import com.alibaba.fastjson.JSONArray; public class TestFastJSON { public static void main(String[] args) { JSONArray array = new JSONArray(); array.add("test"); System.out.println(array.toJSONString()); } } ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雾林小妖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值