1. ホーム
  2. java

[解決済み] 64ビットJVMで動作しているか、32ビットJVMで動作しているか、どうすればわかりますか(プログラム内から)?

2022-03-16 01:19:52

質問

アプリケーションを実行するJVMが32ビットか64ビットかは、どのように見分ければよいのでしょうか? 具体的には、どのような関数やプロパティを使って、プログラム内でこれを検出することができますか?

どのように解決するのですか?

を取得します。 システムプロパティ でこのJVMのビット性をマークしている。

System.getProperty("sun.arch.data.model");

考えられる結果は

  • "32" - 32ビットJVM
  • "64" - 64ビットJVM
  • "unknown" - 不明なJVM

に記載されているように HotSpot FAQ :

Javaコードを書くとき、32ビット動作と64ビット動作はどのように区別するのですか?

32ビットと64ビットの動作を区別できるような公開APIはありません。64ビットは、write once, run anywhereの伝統を受け継ぐ、もう一つのプラットフォームとお考えください。しかし、プラットフォームに依存したコードを書きたい場合は、システムプロパティ sun.arch.data.model に "32", "64", "unknown" という値を指定することができます。

例えば、Javaコードがネイティブ・ライブラリに依存しており、起動時に32ビット版と64ビット版のどちらをロードするかを決定する必要がある場合です。