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没有模块系统,直接通过类路径加载,所以不会有问题。
具体解决方法
我整理了几个可行的方案,按推荐优先级排序:
升级Jsoup到兼容版本
这是最简单也最彻底的解决办法:Jsoup从1.11.0版本开始正式支持Java 9及以上,后续版本还持续优化了模块兼容性。你只需要下载最新的稳定版(比如1.17.3),替换项目lib文件夹里的旧JAR,重新添加到构建路径后,错误应该就会消失。手动配置模块依赖(不升级Jsoup的情况)
- 如果你的项目是模块化项目(存在
module-info.java),需要在文件中添加依赖声明:
(注:Jsoup的自动模块名称固定为module your.module.name { requires org.jsoup; }org.jsoup) - 如果是非模块化项目,可以调整Eclipse的库配置:右键项目 →
Build Path→Configure Build Path→Libraries,找到Jsoup的JAR,右键选择Is Modular,设置模块名称为org.jsoup;或者直接把它从「模块路径」移到「类路径」,让它以Java 8的逻辑加载。
- 如果你的项目是模块化项目(存在
检查Eclipse的Java 9编译配置
确保Eclipse对Java 9的配置正确:右键项目 →Properties→Java Compiler,确认Compiler compliance level设置为9,并且勾选Use default compliance settings,避免编译器级别和运行环境不匹配导致的问题。
内容的提问来源于stack exchange,提问作者Jerry
相关产品推荐
相关产品推荐

