jdk.nashorn.internal.runtime 不存在

本文介绍了如何将开发环境中的Java版本从Java11更换为Java8,步骤包括进入File菜单,然后选择ProjectStructure,最后在Project设置中选择Java 1.8版本,点击OK完成配置。
该文章已生成可运行项目,

解决方案:将Java11换成Java8即可。

设置路径:FIile-->Project Structure-->Project,如图选择1.8,点击OK。

 

本文章已经生成可运行项目
Java 开发中,遇到 `程序包 jdk.nashorn.internal.runtime.regexp.joni 存在` 的问题通常与项目依赖或 JDK 版本有关。`jdk.nashorn.internal.runtime.regexp.joni` 是 Nashorn JavaScript 引擎的一部分,该引擎在 JDK 15 及更高版本中已被弃用,并在后续版本中被移除[^2]。 ### 解决方案 #### 1. **检查 JDK 版本** 如果你使用的是 JDK 15 或更高版本(如 JDK 17、JDK 21),Nashorn 相关的类可能已经被移除了。建议: - 如果你需要使用 Nashorn 引擎,可以移除代码中对 `jdk.nashorn.*` 的引用。 - 如果确实需要使用 Nashorn,可以降级到 JDK 11,该版本仍完整支持 Nashorn 引擎。 #### 2. **添加 Nashorn 的独立实现作为依赖** 从 JDK 15 开始,Nashorn 再包含在标准 JDK 中,但你可以通过引入开源社区维护的 Nashorn 实现来继续使用它。例如: ##### Maven 配置 ```xml <dependency> <groupId>org.openjdk.nashorn</groupId> <artifactId>nashorn-core</artifactId> <version>15.4</version> </dependency> ``` ##### Gradle 配置 ```gradle implementation 'org.openjdk.nashorn:nashorn-core:15.4' ``` 添加此依赖后,确保构建工具正确下载并集成到项目中。 #### 3. **重构代码以避免使用内部 API** `jdk.nashorn.internal.runtime.regexp.joni` 是内部 API,即使在支持 NashornJDK 中也推荐使用。应尽量避免直接使用此类库。可以考虑以下替代方案: - 使用 Java 内置的正则表达式类 `java.util.regex.Pattern` 和 `java.util.regex.Matcher`。 - 如果你是用于处理正则表达式,可以改写相关逻辑,使用标准库中的方法。 #### 4. **启用旧版 Nashorn(仅限 JDK 15~JDK 17)** 如果你仍在使用 JDK 15 到 JDK 17,并希望启用 Nashorn,可以通过 JVM 参数重新启用 Nashorn 模块: ```bash --add-modules=jdk.scripting.nashorn ``` 对于构建工具,可以在运行命令中添加此参数。例如,在 Maven 或 Gradle 插件配置中设置 JVM 参数。 #### 5. **升级或替换依赖库** 如果错误来源于某个第三方库(如某些日志框架、模板引擎等)对 Nashorn 的依赖,建议检查该库是否有更新版本支持现代 JDK,并升级到兼容版本。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值