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

无法通过Gradle构建Fat Jar及API连接报错求助

解决方案

1. 修复核心反射访问错误

你遇到的InaccessibleObjectException是Java 9+模块系统的限制导致的:代码通过反射访问了java.net.Authenticator的私有静态字段,但java.base模块未将java.net包开放给未命名模块(传统非模块化JAR)。解决这个问题需要给JVM添加启动参数:

--add-opens java.base/java.net=ALL-UNNAMED

两种配置方式

  • 直接运行JAR时添加参数:修改终端运行命令为
    java --add-opens java.base/java.net=ALL-UNNAMED -jar 你的应用包名.jar
    
  • Gradle运行时配置:在项目build.gradle中给run任务添加JVM参数
    run {
        jvmArgs '--add-opens', 'java.base/java.net=ALL-UNNAMED'
    }
    

2. 修复Gradle构建问题

纠正错误命令

不要使用gradle ./gradlew run,正确命令是直接执行项目根目录下的Gradle wrapper:

./gradlew run

如果项目没有gradlew文件,先执行gradle wrapper生成,再用上述命令。

适配Gradle 7.x语法

除了替换testCompile为testImplementation、<<为doLast,还需完成以下语法更新:

  • 将compile替换为implementation
  • 将runtime替换为runtimeOnly
  • 确保apply plugin或plugins块符合Gradle 7.x规范(旧版apply plugin: 'java'可保留)

排查非零退出值错误

执行./gradlew run --stacktrace获取详细错误日志,non-zero exit value 1通常是代码逻辑问题(如API密钥配置错误、依赖缺失),可通过日志定位具体原因。

3. 验证流程

  1. 确认build.gradle已完成语法适配并添加JVM参数
  2. 执行./gradlew clean build完成项目构建
  3. 用./gradlew run直接运行,或用带参数的Java命令运行构建好的JAR包

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 07:25:18