問題タブ [azul-zulu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Walkmod の Java ホームを変更するには?
私のPCではWalkmodが動作していますが、異なるJavaバージョンを実行するプロジェクトのsonarlint修正を行うには、Walkmod Java Homeを変更する必要があります
これにより、Walkmod で使用される Java ホームが表示されます
ただし、ここでコマンド $ の CMD では、Java walkmod --version
1.7 で実行されている walkmod が提供されることに注意してください。$ java -version
このシステムに Java(Zulu) 1.7、1.8、および 11 をインストールしました。ただし、一部のプロジェクトでは、Zulu 11 で動作するように walkmod が必要です。Zulu 11 を使用するように、walkmod Java ホームを Zulu 11 ホーム ディレクトリに変更する方法。
java - Windows zulu8を搭載した同じマシンでSimpleDateFormatを使用すると、同じロケールで異なる結果が得られます
SimpleDateFormat を処理する必要がありますが、年の値に問題があります。
問題を絞り込むために、以下の簡単な Java コードを書いたところ、明らかに同じ設定で 2 つの異なる結果が返されることがわかりました (コマンド ラインで local を強制しただけです)。問題は Windows (US 構成) マシンのみです。Linux (CentOS) マシンで同じテストを実行すると、すべて問題ありません。
Windows 上の JVM は zulu8 1.8.0_282 openjdk ですが (ただし、Oracle 8 jdk と同じ動作をしているようです)、Linux 上の Red Hat 1.8.0_272 openjdk です。
ソースコードは次のとおりです。
そして、ここに結果があります(2番目のものは予想されるものです):
どちらも同じロケール設定を使用しているようですが、SimpleDateFormat は異なる週/年を返します。いくつかのロケール設定がありませんか?
ご協力ありがとうございました。
Oracle JDK で編集:
EDIT Calendar default Locale :
Scratte が指摘したように、Calendar と SimpleDateFormat はデフォルトの Locale を使用します。SimpleDateFormat のソース コードを調べたところ、デフォルトの Local として使用されていましたが、コードで使用Locale.getDefault(Locale.Category.FORMAT)
したものとは異なることが判明しましたLocale.getDefault()
。
両方のコード間で 2 つの異なる動作があった理由を最終的に理解しました。正しい Locale を表示しませんでした (3 つの異なる Locale を認識していませんでした。これを明確にしてくれて、Ole VV に感謝します)。
TL;DR
SimpleDateFormat
を使用してLocale.getDefault(Locale.Category.FORMAT)
おり、私の Java コードは の値を表示していLocale.getDefault()
ました。後者は常にen_US
でしたが、前者は使用したコマンドラインに応じてfr_FR
orでした。en_US
そのため、週/年に 2 つの異なる出力がありました。
最後に、JVM パラメータ-Duser.language= / -Duser.country= / -Duser.variant=
が解決策です (これらは 3 つの異なるロケールすべてを強制します)。
この新しいコードは、3 つの異なるロケールの違いを示しています。
対応する出力: