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 ia32
i Java).
Co mogę tutaj zrobić, aby uruchomić SoapUI bez przełączania instalacji całego systemu Java na wersję 32-bitową?
Odpowiedzi:
Bardzo łatwo jest zainstalować wiele wersji Java. Nieco trudniejsze (czytaj: nużące) jest przełączanie między wersjami kaprysem.
tldr
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:
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ć:
źródło
.deb
innej architektury zamiast tarballa?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:
Teraz użyj pakietu java, aby zbudować pakiet .deb z pobranego pliku binarnego. Musisz oszukać go w budowaniu pakietu 32-bitowego:
To powinno wygenerować pakiet .deb. Z jakiegoś powodu nazwa pakietu ma przyrostek _amd64. Zainstaluj pakiet:
Użyj aktualizacji alternatyw, aby wybrać nowy JDK. Został dla mnie zainstalowany w /usr/lib/j2sdk1.6-sun.
Jeśli uruchomisz wersję java, powinieneś zobaczyć poprawną wersję:
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
źródło
Lub możesz zainstalować tylko ia32-libs
rozpakuj środowisko x86
http://javadl.sun.com/webapps/download/AutoDL?BundleId=63983
i dodaj do PATH, jeśli chcesz.
źródło
ia32-libs
nie jest zalecaną metodą na Ubuntu-11.10 i dalszych. askubuntu.com/questions/107230/…