2012-05-22 29 views

回答

2

從Oracle文檔鏈接到您:

如何32位和64位操作之間進行選擇?什麼是默認值?

已將選項-d32和-d64添加到Java啓動程序中,以指定程序是在32位還是64位環境中運行。在Solaris上,這些分別對應於ILP32和LP64數據模型。由於Solaris在同一個Java安裝中包含32位和64位J2SE實現,因此可以指定任一版本。 如果既未指定-d32也未指定-d64,則缺省值將在32位環境中運行。
其他Java命令(javac,javadoc等)很少需要在64位環境中執行。但是,-d32/-d64選項可以傳遞給這些命令,然後使用已建立的-J前綴選項(例如:-J-d64)傳遞到Java啓動程序。
所有其他平臺(Windows和Linux)都包含獨立的32位和64位安裝包。如果兩個軟件包都安裝在系統上,則可以通過將相應的「bin」目錄添加到路徑中來選擇其中一個。爲了保持一致性,Linux上的Java實現接受-d64選項。

(重點煤礦)

因此,根據您鏈接到文檔,默認是在32位JRE中運行,並且可以通過運行在64位JRE的javac通過-J-d64而不是簡單地-d64

但是,請注意,本文檔還說它適用於Java 1.4,並且說沒有任何關於更新版本的Java。

+0

所以這意味着,除非指定-d64,否則64位機器上的64位JVM將以32位模式運行......對吧? –

+0

@ tm.sauron根據Java 1.4的文檔,是的。 –

+0

但@ tm.sauron正在運行CentOS,它是Linux。作爲最後一段(所有其他平臺...),聽起來像默認情況下,如果安裝64位JRE,則會啓用d64。像d32和d64這樣的聲音只對Solaris有意義。 – Smartmarkey

3

爲JRE選擇數據模型(位)是將應用程序的操作限制爲僅在一種模式下運行。 Java字節代碼被設計爲可以在兩種數據模型中工作,因此對於100%純Java應用程序,將根據每種體系結構的行爲和好處進行工作。

但是,如果您的應用程序使用本地庫而不是僅在一種模式下工作,那麼在不支持的應用程序下,應用程序將失敗。爲此,您必須明確指出可以運行哪種模式。

當您設置-d32或-d64時,JRE將不啓動如果您的應用程序無法在選定模式下運行。

+1

所以,這意味着如果在64位機器上運行java代碼而不指定任何選項(-d32或-d64),它將以64位模式運行.........正確? –

+1

對。 這就是java的美麗! –