Gradle のコンソール出力文字化け対策

blog1.mammb.com

Java 18 からJEP 400: UTF-8 by Defaultにより、デフォルトのエンコーディングが UTF-8 に統一されたため、Windows 環境での文字化けが頻出する。

以下のような gradlew.ps1 を用意して、UTF-8 に統一しておくと良い。

$ENV:JAVA_TOOL_OPTIONS = '-Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8'
$batPath = Join-Path $PSScriptRoot "gradlew.bat"
cmd.exe /c "chcp 65001 > nul & `"$batPath`" $args"

以下のように実行できる

./gradlew build


PowerShell から gradlew.bat 経由で実行する場合は以下のようにできる(PowerShell から chcp しても gradlew.bat 側には引き継がれないので、cmd 側で行う必要がある)。

$ENV:JAVA_TOOL_OPTIONS = '-Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8'

./gradlew --stop
cmd.exe /c "chcp 65001 > nul & .\gradlew clean run"


コマンドプロンプトから gradlew.bat 経由で実行する場合は以下のようにできる。

set JAVA_TOOL_OPTIONS=-Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8
chcp 65001

gradlew --stop
gradlew clean run