外部の 32 ビット ライブラリに接続する必要がある Java アプリを作成しました。
私の iMac (Intel) では、jar ファイルを -d32 オプションで起動する必要があります。
私の Powerbook G4 では、-d32 オプションなしで起動する必要があります。
両方の Mac で動作する jar ファイルのバンドルを作成したいと考えています。したがって、-d32 オプションを使用するかどうかを決定するためにテストする条件がいくつかあります。
どうやってやるの?
私はついに私の質問に対する答えを見つけました: まず、アプリをダブルクリックして開いたときに、「-d32」オプションは考慮されません。したがって、jvm を実行する前にアーキテクチャをテストする必要はもうありません。
実際、これは非常に簡単です。Intel Mac では、アプリケーションが作成されたら、アプリケーションのプロパティを開き、[32 ビット モードで開く] を選択します。それで全部です !!!
System.getProperties()を確認してください。具体的にはos.arch
。サポートされているキーのリストは、こちらで入手できます。
String arch = System.getProperty("os.arch");
System.out.println(arch);
私のシステムでは、これは「amd64」を出力します。アーチがわかったら、ロジックを分割できます。Java 7 を使用している場合は、文字列をオンにします。
String arch = System.getProperty("os.arch");
System.out.println(arch);
switch(arch){
case "amd64":
//do logic
break;
default:
//do default logic
break;
}