首页 > 解决方案 > 如何在gradle中更改javac的显示语言

问题描述

我想在 gradle 中将 javac 编译选项设置为“-J-Duser.language=en”。

我的问题和这里差不多

所以我尝试了以下代码:

project.tasks.withType(JavaCompile.class) {
    options.fork = true
    options.forkOptions.jvmArgs = ["-J-Duser.language=en"]
    ...
}

然后gradle返回以下错误信息

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Unrecognized option: -J-Duser.language=en

我相信我做错了什么。如何在 gradle 插件中将输出更改为英文?

添加:我也尝试了以下代码

project.tasks.withType(JavaCompile.class) {
    options.compilerArgs << '-J-Duser.language=en'
    ... 
}

然后,gradle 返回此错误代码:

    > Cannot specify -J flags via `CompileOptions.compilerArgs`. 
Use the `CompileOptions.forkOptions.jvmArgs` property instead.

标签: javagradle

解决方案


Java 编译器的-J选项的作用是将选项发送到 JVM():

-J_option_

传递option给 Java 虚拟机 (JVM),其中 option 是 Java 启动器参考页面上描述的选项之一。例如,-J-Xms48m将启动内存设置为 48 MB。

但是在这里您传递的是 JVM 选项,而不是编译器选项,因此您不需要-J, 并且可以直接传递-Duser.language=en。正如您所发现的,Gradle 甚至不允许您通过-J.


推荐阅读