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

Eclipse Oxygen.3中Java 9环境下Jsoup库找不到问题排查

解决Java 9下Jsoup类找不到的问题

这确实是Java 9模块系统带来的兼容问题,我之前在迁移项目到Java 9时也踩过这个坑!

核心原因

Java 9引入了JPMS(Java平台模块系统),和Java 8的类路径加载机制有很大区别:

  • 如果你使用的是较老版本的Jsoup(比如1.10.x及更早),这些版本没有适配Java 9的模块系统,属于「未模块化JAR」(自动模块)。
  • 在Eclipse Oxygen.3 + Java 9环境下,这类JAR的加载逻辑和Java 8不同,如果项目没有正确声明对自动模块的依赖,就会触发类找不到的错误;而Java 8没有模块系统,直接通过类路径加载,所以不会有问题。

具体解决方法

我整理了几个可行的方案,按推荐优先级排序:

  1. 升级Jsoup到兼容版本
    这是最简单也最彻底的解决办法:Jsoup从1.11.0版本开始正式支持Java 9及以上,后续版本还持续优化了模块兼容性。你只需要下载最新的稳定版(比如1.17.3),替换项目lib文件夹里的旧JAR,重新添加到构建路径后,错误应该就会消失。

  2. 手动配置模块依赖(不升级Jsoup的情况)

    • 如果你的项目是模块化项目(存在module-info.java),需要在文件中添加依赖声明:
      module your.module.name {
          requires org.jsoup;
      }
      
      (注:Jsoup的自动模块名称固定为org.jsoup)
    • 如果是非模块化项目,可以调整Eclipse的库配置:右键项目 → Build Path → Configure Build Path → Libraries,找到Jsoup的JAR,右键选择Is Modular,设置模块名称为org.jsoup;或者直接把它从「模块路径」移到「类路径」,让它以Java 8的逻辑加载。
  3. 检查Eclipse的Java 9编译配置
    确保Eclipse对Java 9的配置正确:右键项目 → Properties → Java Compiler,确认Compiler compliance level设置为9,并且勾选Use default compliance settings,避免编译器级别和运行环境不匹配导致的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:48:48