Maven管理的JavaFX项目中org.json依赖无法访问问题求助
解决Maven JavaFX项目中org.json依赖问题的方案
1. 修正org.json依赖坐标
你遇到的「Missing Artifact」问题,大概率是误用了bundle classifier。Maven中央仓库中org.json的官方构件是普通jar包,而非bundle类型。替换为以下正确依赖:
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20220924</version> </dependency>
执行mvn clean install -U强制更新依赖缓存。
2. 排查Maven仓库配置
如果修正坐标后仍无法拉取,检查你的Maven settings.xml是否配置了屏蔽中央仓库的镜像。可以临时在pom.xml中添加中央仓库配置:
<repositories> <repository> <id>central</id> <url>https://repo1.maven.org/maven2/</url> <releases> <enabled>true</enabled> </releases> </repository> </repositories>
再次执行mvn clean install -U拉取依赖。
3. 处理Java模块系统访问限制
JavaFX项目默认启用Java 9+模块系统,未模块化的org.json jar需要在module-info.java中声明依赖:
module your.module.name { // 替换为你的实际模块名 requires org.json; }
若项目未使用module-info.java,可在IDE项目设置中关闭模块系统,或在运行/编译VM参数中添加--add-modules org.json。
4. 备选:替换为兼容性更好的JSON库
如果org.json的问题难以解决,推荐换用对Maven和模块系统支持更完善的库:
- Gson:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency>
- Jackson:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.2</version> </dependency>
5. 本地jar导入的正确配置
若坚持使用本地下载的json-java.jar,修正system依赖的路径配置:
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20220924</version> <scope>system</scope> <systemPath>${project.basedir}/libs/json-java.jar</systemPath> </dependency>
确保jar文件路径正确,同时在IDE中右键libs目录选择「Add as Library」,让IDE识别该依赖。
内容的提问来源于stack exchange,提问作者MrWobbles
相关产品推荐
相关产品推荐

