Für die normale Entwicklung verwende ich die 64-Bit-VM, die bei der Installation des Java Development Kit (OpenJDK) mit dem Paketmanager mitgeliefert wird.
Es gibt jedoch einige Java-Anwendungen (die native Bibliotheken enthalten, nehme ich an), die auf einer 64-Bit-Java-VM nicht funktionieren. ( SoapUI scheint ein solcher Kandidat zu sein - in Version 4.0.1 und 4.5 Beta 1 schlägt dies mit einem Segmentierungsfehler fehl, wenn es in einer 64-Bit-VM ausgeführt wird.)
Ich habe versucht, die i386-Version von openjdk-6-jre zusätzlich zu der 64-Bit-Version zu installieren, dies wird jedoch von aptitude abgelehnt (da dies mit der vorhandenen 64-Bit-Version in Konflikt steht). Das gleiche passiert, wenn ich versuche, openjdk-jre-7 in der 32-Bit-Version zu installieren.
Eine Antwort auf Kann ich eine Java-32-Bit-Anwendung auf einem 64-Bit-System ausführen, das zur Installation vorgeschlagen wurde ia32-sun-java6-bin
, aber es gibt kein Paket mit diesem Namen (oder etwas mit ia32
und Java).
Was kann ich hier tun, um SoapUI auszuführen, ohne die Java-Installation meines gesamten Systems auf 32-Bit umzustellen?
Antworten:
Es ist sehr einfach, mehrere Java-Versionen zu installieren. Etwas schwieriger (sprich: langwierig) ist es, nach Lust und Laune zwischen den Versionen zu wechseln.
tldr
Apt-Get eine Version
Entscheiden Sie, welche Version Sie am häufigsten verwenden. Oder entscheiden Sie, welche Sie automatische Updates haben möchten. Oder werfen Sie eine Münze, was auch immer. Sie müssen nicht einmal verwenden
apt-get
; Verwalten Sie einfach beide Pakete manuell auf Ihrem System (siehe nächste Überschrift).Der Punkt ist: Es ist einfacher, den Paket-Manager von Ubuntu zu verwenden, um genau eine Version eines Pakets wie Java zu verwalten. Sie werden sich um den Rest kümmern.
enttar den anderen
Laden Sie einen JDK-Tarball herunter. Extrahieren Sie es zu
/opt
.wechsle zwischen ihnen
Ich überlasse es dem Paketmanager, meine primäre Installation durchzuführen. Ich exportiere ein paar Vars für das andere, wenn ich es brauche. Ich arbeite viel auf der Kommandozeile, deshalb ist es eine gute Lösung für mich. Ich störe mit:
Außerdem symlinke ich
jdk/
->jdk1.6.0_3/
weil ich faul bin und es nicht mag, mein .bashrc und andere Skripte bei jedem inkrementellen JDK-Upgrade neu zu konfigurieren.Umgebungsvariablen, die Sie interessieren könnten:
quelle
.deb
für die andere Architektur anstelle des Tarballs bekommen?Installation
Zuerst downloaden Sie die neuesten 32 - Bit - JDK (nicht JRE) von Sun Zu der Zeit war dies für mich jdk-6u7-linux-i586.bin.
Installieren Sie das Java-Paket:
Erstellen Sie nun mit java-package ein .deb-Paket aus der heruntergeladenen Binärdatei. Sie müssen es überlisten, um das 32-Bit-Paket zu erstellen:
Dies sollte ein .deb-Paket generieren. Aus irgendeinem Grund hat der Paketname das Suffix _amd64. Installieren Sie das Paket:
Verwenden Sie Update-Alternativen, um das neue JDK auszuwählen. Es wurde für mich unter /usr/lib/j2sdk1.6-sun installiert.
Wenn Sie Java-Version ausführen, sollten Sie die richtige Version sehen:
32-Bit-Eclipse
Ich musste die 32-Bit-Version von Eclipse neu installieren (da SWT nativen Code enthält). Ich musste auch mein ~ / .eclipse-Verzeichnis löschen, oder Eclipse wurde nicht gestartet (dies erfordert die Neuinstallation neuer Versionen aller Plugins). Fügen Sie abschließend die neue JRE unter Java-> Installierte JREs unter Verwendung des Installationsverzeichnisses (/usr/lib/j2sdk1.6-sun) hinzu und wählen Sie sie als Standard aus.
ref
quelle
Oder Sie können nur ia32-libs installieren
Entpacken Sie die x86-JRE
http://javadl.sun.com/webapps/download/AutoDL?BundleId=63983
und zu PATH hinzufügen, wenn Sie möchten.
quelle
ia32-libs
ist nicht die empfohlene Methode ab Ubuntu-11.10. askubuntu.com/questions/107230/…