Czy mogę zainstalować 32-bitową Javę oprócz wersji 64-bitowej?

14

Do normalnego programowania używam 64-bitowej maszyny wirtualnej, która pojawia się, gdy instaluję zestaw deweloperski Java (OpenJDK) z menedżerem pakietów.

Ale są pewne aplikacje Java (chyba natywne biblioteki), które nie działają na 64-bitowej maszynie wirtualnej Java. (Wygląda na to, że SoapUI jest takim kandydatem - w wersji 4.0.1 i 4.5 beta 1 nie działa z błędem segmentacji, jeśli działa na 64-bitowej maszynie wirtualnej.)

Próbowałem zainstalować wersję i386 openjdk-6-jre oprócz wersji 64-bitowej, ale odmawia tego aptitude (mówiąc, że jest w konflikcie z istniejącą wersją 64-bitową). To samo dzieje się, jeśli spróbuję zainstalować openjdk-jre-7 w wersji 32-bitowej.

Odpowiedź na pytanie: Czy mogę uruchomić 32-bitową aplikację Java w 64-bitowym systemie, którą zaproponowałem do zainstalowania ia32-sun-java6-bin, ale nie ma pakietu o tej nazwie (lub cokolwiek z ia32i Java).

Co mogę tutaj zrobić, aby uruchomić SoapUI bez przełączania instalacji całego systemu Java na wersję 32-bitową?

Paŭlo Ebermann
źródło
Właściwie udało mi się uruchomić soapUI z wersją 64-bitową, edytując skrypt powłoki, aby przekazać inny parametr. Będę musiał sprawdzić, co dokładnie zrobiłem.
Paŭlo Ebermann
Zobacz askubuntu.com/questions/111947/ ... jak zainstalować 64-bitową i 32-bitową Javę z repozytoriów. Możesz także zmienić wartość domyślną.
user68186,

Odpowiedzi:

4

Bardzo łatwo jest zainstalować wiele wersji Java. Nieco trudniejsze (czytaj: nużące) jest przełączanie między wersjami kaprysem.

tldr

  1. apt-get one
  2. rozpakować drugi
  3. eksportuj ścieżki w zależności od tego, który chcesz

apt-get jedna wersja

Zdecyduj, której wersji będziesz najczęściej używać. Lub zdecyduj, który chcesz mieć automatyczne aktualizacje. Albo rzuć monetą, cokolwiek. Nie musisz nawet używać apt-get; po prostu ręcznie utrzymuj oba pakiety w systemie (patrz następny nagłówek).

Chodzi o to: łatwiej jest użyć menedżera pakietów Ubuntu do utrzymania dokładnie jednej wersji pakietu, takiej jak Java. Zajmiesz się resztą.

rozpakować drugi

Pobierz plik tar jdk. Wyodrębnij to do /opt.

przełączać się między nimi

Pozwalam menedżerowi pakietów obsłużyć moją podstawową instalację. Kiedy potrzebuję, eksportuję trochę innych. Dużo pracuję na linii poleceń, więc jest to dla mnie dobre rozwiązanie. Niepokoi mnie:

export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH

Ponadto, symboluję jdk/-> jdk1.6.0_3/ponieważ jestem leniwy i nie lubię rekonfigurować mojego .bashrc i innych skryptów przy każdym przyrostowym uaktualnieniu jdk.

Zmienne środowiskowe, które mogą Cię obchodzić:

JAVA_LIBDIR
JNI_LIBDIR
JAVAJNI_LIBDIR
JVM_ROOT
JAVA_HOME
PATH
djeikyb
źródło
Czy nie możesz równie dobrze zdobyć .debinnej architektury zamiast tarballa?
0xC0000022L
@ 0xC0000022L Chodzi o to, aby każda wersja zawierała własny katalog. Jeśli możesz to zrobić za pomocą deb, świetnie!
djeikyb
2

Instalacja

Najpierw pobierz najnowszą 32-bitową wersję JDK (nie JRE) z Sun. W tym czasie był to dla mnie jdk-6u7-linux-i586.bin.

Zainstaluj pakiet java:

sudo apt-get install java-package 

Teraz użyj pakietu java, aby zbudować pakiet .deb z pobranego pliku binarnego. Musisz oszukać go w budowaniu pakietu 32-bitowego:

DEB_BUILD_GNU_TYPE=i486-linux-gnu DEB_BUILD_ARCH=i386 fakeroot make-jpkg jdk-6u7-linux-i586.bin 

To powinno wygenerować pakiet .deb. Z jakiegoś powodu nazwa pakietu ma przyrostek _amd64. Zainstaluj pakiet:

sudo dpkg -i sun-j2sdk1.6_1.6.0+update7_amd64.deb 

Użyj aktualizacji alternatyw, aby wybrać nowy JDK. Został dla mnie zainstalowany w /usr/lib/j2sdk1.6-sun.

sudo update-alternatives --config java 

Jeśli uruchomisz wersję java, powinieneś zobaczyć poprawną wersję:

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-bitowe środowisko Eclipse

Musiałem ponownie zainstalować 32-bitową wersję Eclipse (ponieważ SWT zawiera natywny kod). Musiałem także usunąć mój katalog ~ / .eclipse, ponieważ w przeciwnym razie Eclipse nie chce się uruchomić (wymaga to ponownej instalacji nowych wersji jakichkolwiek wtyczek). Na koniec dodaj nowe środowisko JRE w Javie-> Zainstalowane środowiska JRE przy użyciu lokalizacji instalacji (/usr/lib/j2sdk1.6-sun) i wybierz je jako domyślne.

ref

Ringtail
źródło
Dzięki, spróbuję tego ... chociaż nie chcę, aby 32-bitowy był domyślny, używaj go tylko dla kilku programów, które nie działają z 64-bitowym.
Paŭlo Ebermann