
Für die normale Entwicklung verwende ich die 64-Bit-VM, die geliefert wird, wenn ich das Java Development Kit (OpenJDK) mit dem Paketmanager installiere.
Aber es gibt einige Java-Anwendungen (die vermutlich native Bibliotheken enthalten), die auf einer 64-Bit-Java-VM nicht funktionieren. (Sieht aus wieSeifen-UIist ein solcher Kandidat – in Version 4.0.1 und 4.5 Beta 1 schlägt es mit einem Segmentierungsfehler fehl, wenn es in einer 64-Bit-VM ausgeführt wird.)
Ich habe versucht, zusätzlich zur 64-Bit-Version die i386-Version von openjdk-6-jre zu installieren, aber dies wird von aptitude abgelehnt (mit der Begründung, dass es mit der vorhandenen 64-Bit-Version in Konflikt steht). Dasselbe passiert, wenn ich versuche, openjdk-jre-7 in der 32-Bit-Version zu installieren.
Eine Antwort aufKann ich eine 32-Bit-Java-Anwendung auf einem 64-Bit-System ausführen?zur Installation vorgeschlagen ia32-sun-java6-bin
, aber es gibt kein Paket mit diesem Namen (oder irgendetwas mit ia32
Java).
Was kann ich hier tun, um SoapUI auszuführen, ohne meine gesamte Java-Systeminstallation auf 32 Bit umzustellen?
Antwort1
Es ist ganz einfach, mehrere Java-Versionen zu installieren. Etwas schwieriger (sprich: mühsamer) ist es, nach Lust und Laune zwischen den Versionen zu wechseln.
tldr
- apt-get eins
- entpacken Sie die anderen
- Exportpfade, je nachdem, welchen Sie möchten
apt-get eine Version
Entscheiden Sie, welche Version Sie überwiegend verwenden möchten. Oder entscheiden Sie, welche Version automatisch aktualisiert werden soll. Oder werfen Sie eine Münze, was auch immer. Sie müssen nicht einmal verwenden apt-get
; pflegen Sie einfach beide Pakete manuell auf Ihrem System (siehe nächste Überschrift).
Der Punkt ist: Es ist einfacher, den Paketmanager von Ubuntu zu verwenden, um genau eine Version eines Pakets wie Java zu verwalten. Um den Rest kümmern Sie sich.
entpacken Sie die anderen
Laden Sie ein JDK-Tarball herunter. Extrahieren Sie es nach /opt
.
zwischen ihnen wechseln
Ich lasse den Paketmanager meine primäre Installation handhaben. Ich exportiere einige Variablen für die andere, wenn ich sie brauche. Ich arbeite viel auf der Befehlszeile, daher ist das für mich eine akzeptable Lösung. Ich kümmere mich um:
export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
Außerdem verwende ich einen symbolischen Link jdk/
-> jdk1.6.0_3/
, weil ich faul bin und meine .bashrc und andere Skripte nicht bei jedem inkrementellen JDK-Upgrade neu konfigurieren möchte.
Umgebungsvariablen, die für Sie von Interesse sein könnten:
JAVA_LIBDIR
JNI_LIBDIR
JAVAJNI_LIBDIR
JVM_ROOT
JAVA_HOME
PATH
Antwort2
Installation
Erste,herunterladendas neueste 32-Bit-JDK (nicht JRE) von Sun. Zu diesem Zeitpunkt war dies bei mir jdk-6u7-linux-i586.bin.
Installieren Sie das Java-Paket:
sudo apt-get install java-package
Verwenden Sie nun java-package, um aus der heruntergeladenen Binärdatei ein .deb-Paket zu erstellen. Sie müssen es dazu bringen, das 32-Bit-Paket zu erstellen:
DEB_BUILD_GNU_TYPE=i486-linux-gnu DEB_BUILD_ARCH=i386 fakeroot make-jpkg jdk-6u7-linux-i586.bin
Dies sollte ein .deb-Paket generieren. Aus irgendeinem Grund hat der Paketname das Suffix _amd64. Installieren Sie das Paket:
sudo dpkg -i sun-j2sdk1.6_1.6.0+update7_amd64.deb
Verwenden Sie update-alternatives, um das neue JDK auszuwählen. Bei mir wurde es unter /usr/lib/j2sdk1.6-sun installiert.
sudo update-alternatives --config java
Wenn Sie „java -version“ ausführen, sollte die richtige Version angezeigt werden:
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-Bit-Eclipse
Ich musste die 32-Bit-Version von Eclipse neu installieren (da SWT nativen Code enthält). Außerdem musste ich mein Verzeichnis ~/.eclipse löschen, da Eclipse sonst nicht gestartet werden konnte (dazu muss ich neue Versionen aller Plugins neu installieren). Fügen Sie abschließend die neue JRE unter Java->Installierte JREs unter Verwendung des Installationsorts (/usr/lib/j2sdk1.6-sun) hinzu und wählen Sie sie als Standard aus.
Antwort3
Oder Sie können nur ia32-libs installieren
apt-get install ia32-libs
Entpacken Sie die x86-JRE
http://javadl.sun.com/webapps/download/AutoDL?BundleId=63983
und fügen Sie es bei Bedarf zu PATH hinzu.