Kann ich zusätzlich zu einer 64-Bit-Version ein 32-Bit-Java installieren?

14

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 ia32und Java).

Was kann ich hier tun, um SoapUI auszuführen, ohne die Java-Installation meines gesamten Systems auf 32-Bit umzustellen?

Paŭlo Ebermann
quelle
Ich habe es tatsächlich geschafft, soapUI mit der 64-Bit-Version auszuführen, indem ich das Shell-Skript bearbeitet habe, um einen anderen Parameter zu übergeben. Ich muss nachsehen, was genau ich getan habe.
Paŭlo Ebermann
Unter askubuntu.com/questions/111947/… finden Sie Informationen zur Installation von 64-Bit- und 32-Bit-Java aus den Repositorys. Sie können auch die Standardeinstellung ändern.
user68186

Antworten:

4

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

  1. passend eins bekommen
  2. enttar den anderen
  3. Exportieren Sie Pfade, je nachdem, welche Sie möchten

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:

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

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:

JAVA_LIBDIR
JNI_LIBDIR
JAVAJNI_LIBDIR
JVM_ROOT
JAVA_HOME
PATH
djeikyb
quelle
Könnten Sie nicht auch das .debfür die andere Architektur anstelle des Tarballs bekommen?
0xC0000022L
@ 0xC0000022L Die Idee ist, dass Sie jede Version in einem eigenen Verzeichnis speichern. Wenn Sie das mit einem Deb machen können, großartig!
Djeikyb
2

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:

sudo apt-get install java-package 

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:

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-Alternativen, um das neue JDK auszuwählen. Es wurde für mich unter /usr/lib/j2sdk1.6-sun installiert.

sudo update-alternatives --config java 

Wenn Sie Java-Version ausführen, sollten Sie die richtige Version sehen:

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). 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

Ringtail
quelle
Danke, ich werde es versuchen ... obwohl ich nicht möchte, dass die 32-Bit-Version die Standardeinstellung ist, benutze ich sie nur für die wenigen Programme, die nicht mit 64-Bit arbeiten.
Paŭlo Ebermann