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

构建Minecraft客户端时Gradlew报错:无法获取可变Windows环境变量映射

编译Gamesense Minecraft客户端时的环境变量映射错误解决

问题详情

编译Gamesense Minecraft客户端时,持续报错:

FAILURE: Build failed with an exception.

* What went wrong:
Unable to get mutable Windows environment variable map

添加--stacktrace参数后得到的堆栈信息:

* Exception is:
net.rubygrapefruit.platform.NativeException: Unable to get mutable Windows environment variable map
        at net.rubygrapefruit.platform.internal.WrapperProcess.getWindowsEnv(WrapperProcess.java:127)
        at net.rubygrapefruit.platform.internal.WrapperProcess.setEnvInternal(WrapperProcess.java:100)
        at net.rubygrapefruit.platform.internal.WrapperProcess.setEnvironmentVariable(WrapperProcess.java:85)
        at org.gradle.internal.nativeintegration.processenvironment.NativePlatformBackedProcessEnvironment.setNativeEnvironmentVariable(NativePlatformBackedProcessEnvironment.java:36)
        at org.gradle.internal.nativeintegration.processenvironment.AbstractProcessEnvironment.setEnvironmentVariable(AbstractProcessEnvironment.java:67)
        at org.gradle.internal.nativeintegration.processenvironment.AbstractProcessEnvironment.maybeSetEnvironment(AbstractProcessEnvironment.java:41)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:65)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.base/java.lang.Thread.run(Thread.java:1623)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private static final java.util.Map java.lang.ProcessEnvironment.theCaseInsensitiveEnvironment accessible: module java.base does not "opens java.lang" to unnamed module @3f0ee7cb
        at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:387)
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:363)
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:311)
        at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:181)
        at java.base/java.lang.reflect.Field.setAccessible(Field.java:175)
        at net.rubygrapefruit.platform.internal.WrapperProcess.getWindowsEnv(WrapperProcess.java:124)
        ... 16 more


* Get more help at https://help.gradle.org

当前使用的Gradlew和JDK版本:

------------------------------------------------------------
Gradle 4.10.3
------------------------------------------------------------

Build time:   2018-12-05 00:50:54 UTC
Revision:     e76905e3a1034e6f724566aeb985621347ff43bc

Kotlin DSL:   1.0-rc-6
Kotlin:       1.2.61
Groovy:       2.4.15
Ant:          Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM:          20.0.1 (Oracle Corporation 20.0.1+9-29)
OS:           Windows 10 10.0 amd64

JDK版本:20.0,已正确配置JAVA_HOME和Path环境变量。

错误原因

核心问题是Gradle版本与JDK版本不兼容:

  • Gradle 4.10.3是2018年发布的旧版本,仅支持JDK 7到JDK 11,完全不兼容JDK 16及以上的模块化机制。
  • JDK 9及以后引入的模块系统,限制了反射访问Java核心模块的内部字段,而Gradle 4.x的内部代码依赖反射修改java.lang.ProcessEnvironment的私有字段,这在JDK 20中被模块权限禁止,直接抛出InaccessibleObjectException。

解决方案

方案1:降级JDK版本

安装并配置Gradle 4.10.3支持的JDK版本,推荐:

  • JDK 8(长期支持版本,兼容性最优)
  • JDK 11(另一个长期支持版本,适合需要部分新特性的场景)
    配置时确保JAVA_HOME指向新安装的JDK,并调整Path优先级,保证系统优先使用该版本。

方案2:升级Gradle版本

将项目中的Gradle版本升级到支持JDK 20的版本(需Gradle 7.5及以上,推荐Gradle 8.x):

  1. 修改项目根目录下的gradle/wrapper/gradle-wrapper.properties文件,将distributionUrl替换为对应版本的Gradle包地址,例如:
    distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
    
  2. 重新运行gradlew build,Gradle会自动下载并使用新版本。

注意:升级Gradle后可能需要调整项目中的构建脚本(如build.gradle),适配新版本的语法和API变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:15:00