如何在Gradle中修改javac编译输出的显示语言为英文
正确配置方案
你两次配置报错的核心原因是参数前缀使用错误:
options.forkOptions.jvmArgs接收的是直接传递给fork进程JVM的参数,不需要加-J前缀。-J是命令行调用javac时的专用标识,作用是告诉javac将后续参数透传给JVM,直接给JVM传参时携带-J会被识别为非法选项,触发第一个报错。compilerArgs是传递给javac本身的配置参数,Gradle会主动拦截-J开头的JVM参数,因此触发第二个报错。
正确配置如下:
project.tasks.withType(JavaCompile.class) { options.fork = true // 直接传递JVM参数,不需要加-J前缀,补充country配置避免部分场景不生效 options.forkOptions.jvmArgs = ["-Duser.language=en", "-Duser.country=US"] // 其余原有配置保留 }
配置完成后可以故意写一处语法错误触发编译,验证输出的错误提示是否为英文即可。
内容的提问来源于stack exchange,提问作者e.ume
相关产品推荐
相关产品推荐

