You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle JavaFX项目引入JSON Simple依赖报找不到包/模块如何解决

问题原因

  • json-simple 1.1.1 是停止维护多年的非模块化 Jar 包,既没有内置 module-info.class,也没有在清单文件中声明自动模块名。模块化项目默认不会将这类无模块信息的依赖放到模块路径下,导致 module-info.java 中声明的 requires json.simple 无法被 Gradle 构建识别。
  • 手动在 IntelliJ 中添加 Jar 包仅修改了 IDE 本地的项目配置,没有同步到 Gradle 构建脚本中,所以仅 IDE 编译不报错,执行 Gradle 命令时依然读取不到对应依赖。
  • 未显式配置 Gradle 模块路径推断规则时,无模块信息的依赖会被默认放到类路径中,而模块化项目中类路径的依赖对模块不可见,就会出现 package does not exist 报错。

解决方案

继续使用 JSON-Simple 的修复步骤

  1. 先删除手动创建的 libs 目录和 IntelliJ 中手动添加的库配置,所有依赖统一走 Gradle 声明,在 build.gradle 中添加依赖:
dependencies {
    implementation 'com.googlecode.json-simple:json-simple:1.1.1'
}
  1. 在 build.gradle 中添加模块化相关配置,强制将 json-simple 纳入模块路径:
java {
    // 开启模块路径自动推断
    modularity.inferModulePath = true
}

// 补充编译、运行时的模块配置
compileJava {
    options.javaModulePath += files(configurations.compileClasspath)
}

run {
    jvmArgs += '--add-modules', 'json.simple'
}
  1. 保留 module-info.java 中的 requires json.simple; 声明,执行 gradle clean build 验证即可。

推荐替代 JSON 解析方案

JSON-Simple 已停止维护多年,更推荐使用以下对 Java 模块化支持完善、维护活跃的解析库:

  • Jackson:Java 生态应用最广的 JSON 解析库,支持数据绑定、自定义序列化规则等全场景能力,依赖声明:
implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2'

对应 module-info.java 配置:requires com.fasterxml.jackson.databind;

  • Gson:Google 出品的轻量 JSON 库,API 简洁易上手,适合小型项目,依赖声明:
implementation 'com.google.code.gson:gson:2.10.1'

对应 module-info.java 配置:requires com.google.gson;

  • FastJSON2:高性能 JSON 解析库,序列化/反序列化速度优势明显,适合对性能要求高的场景,依赖声明:
implementation 'com.alibaba.fastjson2:fastjson2:2.0.40'

对应 module-info.java 配置:requires com.alibaba.fastjson2;

内容的提问来源于stack exchange,提问作者Jordan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:48:03