15

64 ビットの Centos マシンに 64 ビットの Java をインストールしました。私の質問は、-d64 オプションを指定しない場合、32 ビット JVM がインストールされていなくても、JVM は 32 ビット モードで実行されるということです。

また、「javac」で -d64 オプションを使用できるかどうかも少し興味がありました。はいの場合、それは何を意味するか、またはどこで使用できますか? この記事を読んでいるときにこれに出くわしました。

ありがとう

4

2 に答える 2

3

JRE のデータ モデル (ビット) の選択は、アプリケーションの動作を 1 つのモードでのみ実行するように制限することです。Java バイト コードは両方のデータ モデルで動作するように設計されているため、100% 純粋な Java アプリケーションでは、各アーキテクチャの動作と利点に従って動作します。

ただし、アプリケーションが 1 つのモードでのみ機能するネイティブ ライブラリを使用している場合、アプリケーションはサポートされていないモードで失敗します。そのためには、実行するモードを明示的に指定する必要があります。

-d32 または -d64 を設定すると、選択したモードで実行できない場合、JRE はアプリケーションを起動しません。

于 2012-06-26T05:48:21.377 に答える
2

リンクしたOracleドキュメントから:

32ビットと64ビットのどちらの動作を選択するにはどうすればよいですか?デフォルトは何ですか?

オプション-d32および-d64がJavaランチャーに追加され、プログラムを32ビット環境と64ビット環境のどちらで実行するかを指定します。Solarisでは、これらはそれぞれILP32およびLP64データモデルに対応します。Solarisには32ビットと64ビットの両方のJ2SE実装が含まれているため、Javaの同じインストールにどちらのバージョンも指定できます。 -d32も-d64も指定されていない場合、デフォルトでは32ビット環境で実行されます。
他のJavaコマンド(javac、javadocなど)を64ビット環境で実行する必要はほとんどありません。ただし、-d32 / -d64オプションをこれらのコマンドに渡してから、確立された-Jプレフィックスオプション(例:-J-d64)を使用してJavaランチャーに渡すことができます。
他のすべてのプラットフォーム(WindowsおよびLinux)には、個別の32ビットおよび64ビットのインストールパッケージが含まれています。両方のパッケージがシステムにインストールされている場合は、パスに適切な「bin」ディレクトリを追加して、どちらか一方を選択します。一貫性を保つために、Linux上のJava実装は-d64オプションを受け入れます。

(強調鉱山)

-J-d64したがって、リンク先のドキュメントによると、デフォルトでは32ビットJREで実行され、単純にではなく渡すことで64ビットJREでjavacを実行できます-d64

ただし、このドキュメントにはJava 1.4にも適用されると記載されており、Javaの最新バージョンについては何も記載されていないことに注意してください。

于 2012-05-22T07:04:35.387 に答える