
對於正常開發,我使用 64 位元 VM,當我使用套件管理器安裝 Java 開發工具包 (OpenJDK) 時就會出現該 VM。
但有一些 Java 應用程式(我想包含本機程式庫)無法在 64 位元 Java VM 上運行。 (好像肥皂使用者介面就是這樣的候選者 - 在版本 4.0.1 和 4.5 beta 1 中,如果在 64 位元 VM 中運行,它會因分段錯誤而失敗。
我嘗試除了 64 位元版本之外還安裝 i386 版本的 openjdk-6-jre,但這被 aptitude 拒絕(說它與現有的 64 位元版本衝突)。如果我嘗試在 32 位元版本中安裝 openjdk-jre-7,也會發生相同的情況。
一個答案我可以在 64 位元系統上運行 Java 32 位元應用程式嗎建議安裝ia32-sun-java6-bin
,但沒有具有此名稱的套件(或任何帶有ia32
Java 的套件)。
我可以在這裡做什麼來運行 SoapUI,而不將整個系統 Java 安裝切換到 32 位元?
答案1
安裝多個版本的 Java 非常簡單。有點困難(讀作:乏味)的是隨心所欲地在版本之間切換。
總覽
- apt-get 一個
- 解壓縮另一個
- 導出路徑取決於您想要的路徑
apt-get 一個版本
決定您主要使用哪個版本。或決定您想要自動更新哪一個。或者拋硬幣,無論如何。你甚至不必使用apt-get
;只需手動維護系統上的這兩個軟體包(請參閱下一個標題)。
重點是:使用 Ubuntu 的套件管理器來維護像 java 這樣的套件的一個版本會更容易。你會處理剩下的事情。
解壓縮另一個
下載 jdk 壓縮包。將其提取到/opt
.
在它們之間切換
我讓套件管理器處理我的主要安裝。當我需要時,我會為另一個變數導出一些變數。我經常在命令列上工作,所以這對我來說是一個不錯的解決方案。我煩惱的是:
export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
另外,我符號連結jdk/
->jdk1.6.0_3/
因為我很懶,不喜歡在每次增量 jdk 升級時重新配置我的 .bashrc 和其他腳本。
您可能關心的環境變數:
JAVA_LIBDIR
JNI_LIBDIR
JAVAJNI_LIBDIR
JVM_ROOT
JAVA_HOME
PATH
答案2
安裝
第一的,下載Sun 最新的 32 位元 JDK(不是 JRE)。當時對我來說這是 jdk-6u7-linux-i586.bin 。
安裝java套件:
sudo apt-get install java-package
現在使用 java-package 從您下載的二進位檔案建立 .deb 套件。你必須欺騙它構建 32 位元包:
DEB_BUILD_GNU_TYPE=i486-linux-gnu DEB_BUILD_ARCH=i386 fakeroot make-jpkg jdk-6u7-linux-i586.bin
這應該會產生一個 .deb 套件。由於某種原因,套件名稱帶有 _amd64 後綴。安裝包:
sudo dpkg -i sun-j2sdk1.6_1.6.0+update7_amd64.deb
使用 update-alternatives 選擇新的 JDK。它安裝在 /usr/lib/j2sdk1.6-sun 。
sudo update-alternatives --config java
如果您運行 java -version 您應該看到正確的版本:
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Server VM (build 10.0-b23, mixed mode)
32 位元日食
我必須重新安裝 32 位元版本的 Eclipse(因為 SWT 包含本機程式碼)。我還必須刪除 ~/.eclipse 目錄,否則 Eclipse 將無法啟動(這需要重新安裝任何外掛程式的新版本)。最後,使用安裝位置 (/usr/lib/j2sdk1.6-sun) 在 Java->Installed JREs 中新增新的 JRE,並將其選擇為預設值。
答案3
或者你可以只安裝ia32-libs
apt-get install ia32-libs
解壓縮 x86 jre
http://javadl.sun.com/webapps/download/AutoDL?BundleId=63983
如果需要的話,請添加到 PATH 中。