如何指定爲了運行我創建的某個java應用程序,您需要在系統上安裝32位JRE?進一步如何指定java應用程序使用32位JRE而不是64位JRE(如果它們都安裝的話)?使罐子運行在32位jre
背景:
我已經創建了一個使用第三方僅32位庫的應用程序。該應用程序無法在64位JRE中運行。
我打算將這個應用程序分發到我公司的很多計算機上,所以我需要能夠在代碼或導出過程中指定所需的JRE。
我使用eclipse,開普勒來開發和構建java應用程序。
如何指定爲了運行我創建的某個java應用程序,您需要在系統上安裝32位JRE?進一步如何指定java應用程序使用32位JRE而不是64位JRE(如果它們都安裝的話)?使罐子運行在32位jre
背景:
我已經創建了一個使用第三方僅32位庫的應用程序。該應用程序無法在64位JRE中運行。
我打算將這個應用程序分發到我公司的很多計算機上,所以我需要能夠在代碼或導出過程中指定所需的JRE。
我使用eclipse,開普勒來開發和構建java應用程序。
了Java的想法總是一次編譯,到處運行,而無需考慮操作系統,CPU架構等,所以你可能會走向這裏的錯誤方向。
但是,這裏有一些系統屬性,你可能/沒有幫助。 Java的熱點(TM)64位服務器VM
要使用到這些只是做
String vmname = System.getProperty("java.vm.name");
對於Java字節碼,如果JRE是32位,64位或其他內容,則沒有區別,但是Reid在他的問題中提到他使用的是32位本機庫,因此他的程序只能在32位JVM; 64位JVM無法加載32位本機庫。 – Jesper
您不能直接在Java中執行此操作,因爲此時您處於正在運行的JVM中。我的解決方案是編寫一個dos批處理腳本來設置JAVA_HOME,並在PATH的前面添加%JAVA_HOME%\bin
。例如,我有sethome.bat
其中包含
@echo off
set "JAVA_HOME=c:\Program Files (x86)\Java\jre6"
set "PATH=%JAVA_HOME%\bin;%PATH%"
然後我用
call "%SERVICE_HOME%\sethome"
"%JAVA_HOME%\bin\java" -version
echo If this does not look correct press CTRL-C to cancel otherwise
pause
你一般不能確保什麼程序運行你的jar。我可以將罐子傳遞給acroread
或zip
或其他任何東西,而且你無法對此做任何事情。
所以,我只是試圖加載庫,並做適當的錯誤/異常處理。誰知道?也許你的客戶已經用64位版本取代了這個庫,但你不知道它?所以,這一點:加載,如果它不會以優美的恐怖信息中止是唯一明智的事情。
如果可能,請獲取您的庫的源代碼併爲64位機器構建。 :) 把它丟去外面。 – Qix