所以我有隻適用於在Windows,OSX,Linux的32位JVM一些第三方本地庫,我需要一直執行的Java應用程序在32位JVM方式運行。可能強制64位JVM通過參數「-d32」使用32位模式?
那麼如果目標系統只安裝了64位JVM,纔有可能迫使它在運行32位模式的java應用程序?
所以我有隻適用於在Windows,OSX,Linux的32位JVM一些第三方本地庫,我需要一直執行的Java應用程序在32位JVM方式運行。可能強制64位JVM通過參數「-d32」使用32位模式?
那麼如果目標系統只安裝了64位JVM,纔有可能迫使它在運行32位模式的java應用程序?
您指定禁止的前提條件(好吧,我排除了捆在JVM的解決方案和安裝最JVM溶液)號從32位JRE運行的應用程序。如果要在32位JVM中運行應用程序,並且第三方本機庫僅作爲32位DLL提供,則必須使用32位JVM。 64位JVM無法加載32位庫;沒有32位模式來加載這樣的庫。
解決方案包括:
作爲一個方面說明:http://stackoverflow.com/a/2925549/314104討論,如果你打算部署到64位Java目標反正你可能會發現有趣的可能性。有兩個JVM中,一個32位和一個64位的,則可以使用RMI/CORBA和32位JVM封裝了圖書館舉辦一個服務,你仍然可以使用64位JVM的應用程序,繪圖64位虛擬機的好處。 – user314104
所以我想這意味着我需要購買一個將捆綁所需JVM的安裝程序。 – KJW
這是一種可以接受的方法。如果用戶計算機上不存在JVM,也可以使用安裝程序爲Web用戶安裝正確的JVM。 – user314104
possible to force a 64-bit JVM to use 32-bit mode via the argument 「-d32」?
由於不存在這樣的參數給java
命令,答案是明顯爲「否」。
我不認爲你是正確的,因爲'-d32'和'-d64'都記錄在這裏:http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/java。html – rozky
在Java 6,沒有。對於Java 7+,是的。
-d32使用與Java 7
您錯過了他所說的「如果目標系統只安裝了64位JVM,是否有可能強制它以32位模式運行Java應用程序?」。 -d32仍然需要32位JRE。 – user314104
使用java 1.8(64位)我收到以下錯誤消息: 'java -d32' '錯誤:此Java實例不支持32位JVM。 請安裝所需版本.' –
[此Oracle常見問題](http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#64bit_layering)表明-d32/-d64選項僅在Solaris上有用;在Windows/Linux上,您需要安裝合適的32位或64位JVM,並專門運行您想要的(例如,將其包含在系統路徑中)。 –
@MockerTim:金正雨說,他的應用程序有一個天然的第三方庫。這不是這裏討論的Java字節碼。 – user314104
IIRC,只有OS X Java版本支持'-d32'標誌。 – Mot
你需要具體。這是Oracle JVM嗎? –