インストールされているバージョンの JDK を使用すると、デフォルトのシステム ロケールは正しく報告されますが、 を使用するとadoptopenjdk-11
tar.gz
、常に次のように報告されます。en_US
import java.util.Locale;
public class CurrentLocale {
public static void main(String... args) {
System.out.println("Default locale " + Locale.getDefault());
}
}
adoptopenjdk11
これは、ダウンロードして抽出したものと比較した Homebrew インストールの例です。
/usr/bin/java CurrentLocale
Default locale ja_JP
~/Downloads/jdk-11.0.8+10/Contents/Home/bin/java CurrentLocale
Default locale en_US
各JDKのバージョンをここに示します。
# adoptopenjdk-11 (brew cask install adoptopenjdk11)
/usr/bin/java -version
openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.8+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.8+10, mixed mode)
# adoptopenjdk-11 (Downloaded from https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=openj9)
~/Downloads/jdk-11.0.8+10/Contents/Home/bin/java -version
openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.8+10)
Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.21.0, JRE 11 Mac OS X amd64-64-Bit Compressed References 20200715_677 (JIT enabled, AOT enabled)
OpenJ9 - 34cf4c075
OMR - 113e54219
JCL - 95bb504fbb based on jdk-11.0.8+10)
/usr/bin/java
Javaがたまたまインストールされているかどうかに関係なく、シンボリックリンクされたJavaバイナリが常にそこにあるため、macOSは何らかの魔法を行っていると思います。
/usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
Hotspot (Oracle) バージョンは正常に動作しますが、openj9 (IBM) バージョンは動作しません。
JRE をアプリケーションと一緒にインストーラーにバンドルし、非標準の場所にインストールする必要があります。
ダウンロードした openj9 tar でデフォルトのロケールを取得して、現在のシステムのロケールをミラーリングするにはどうすればよいですか?