java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/TextUtils

本文介绍从Struts2版本2.3.15升级到2.3.31后出现的Java.lang.NoClassDefFoundError异常。解决方案包括替换jsonplugin-0.34.jar为struts2-json-plugin-2.3.31.jar。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

struts2使用的版本由2.3.15升级到2.3.31以后报Java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/TextUtils异常

解决换包:

去掉jsonplugin-0.34.jar,使用struts2-json-plugin-2.3.31.jarr
### 问题分析 `java.lang.NoClassDefFoundError: javafx/util/Pair` 表示在运行时不到 `javafx.util.Pair` 。此通常在 JavaFX 模块中提供,但在某些 JDK 发行版(如 OpenJDK)中默认不包含 JavaFX,或者在 Java 11 及以上版本中,JavaFX 已从标准 JDK 中移除,需要手动引入 [^3]。 ### 解决方案 #### 1. 使用替代库(推荐) `javafx.util.Pair` 是一个简单的键值对容器,可以通过引入第三方库或使用自定义来替代。 - **使用 Hutool 的 `Pair` **: 在 `pom.xml` 中添加 Hutool 依赖: ```xml <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.12</version> </dependency> ``` 替换原有代码中的 `javafx.util.Pair`: ```java // 原有代码 import javafx.util.Pair; // 替换为 import cn.hutool.core.lang.Pair; ``` Hutool 提供了似功能,并且兼容性更好,适合生产环境使用 [^4]。 #### 2. 手动引入 JavaFX 模块(适用于需要完整 JavaFX 功能的场景) 如果项目确实需要使用 JavaFX 的其他功能,可以手动下载 JavaFX SDK 并在启动时指定模块路径。 - 下载地址:[JavaFX - Gluon](https://gluonhq.com/products/javafx/) - 启动命令示例: ```bash java --module-path ./javafx-sdk-19/lib --add-modules javafx.controls,javafx.fxml -jar your_app.jar ``` 此方式适用于 Java 11 及以上版本 [^3]。 #### 3. 检查 JDK 发行版差异 - **OpenJDK 与 OracleJDK 差异**:某些版本的 OracleJDK 包含 JavaFX,而 OpenJDK 不包含。如果本地使用的是 OracleJDK,而服务器使用 OpenJDK,则可能导致运行时缺失 [^2]。 - **建议**:统一本地和服务器的 JDK 版本和发行商,避免因环境差异导致加载失败。 #### 4. 自定义 Pair 如果项目中仅使用了 `Pair` 的基本功能,也可以自定义一个简单的 `Pair` 来替代: ```java public class Pair<K, V> { private final K key; private final V value; public Pair(K key, V value) { this.key = key; this.value = value; } public K getKey() { return key; } public V getValue() { return value; } } ``` 此方法适用于轻量级使用场景,避免引入额外依赖 [^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值