64ビットバージョンに加えて32ビットJavaをインストールできますか?


14

通常の開発では、パッケージマネージャーでJava開発キット(OpenJDK)をインストールするときに付属する64ビットVMを使用しています。

しかし、64ビットJava VMで動作しないJavaアプリケーション(ネイティブライブラリを含むと思われます)がいくつかあります。(SoapUIはそのような候補です-バージョン4.0.1および4.5ベータ1では、64ビットVMで実行するとセグメンテーションエラーで失敗します。)

64ビット版に加えてi386バージョンのopenjdk-6-jreをインストールしようとしましたが、これはaptitudeによって拒否されました(既存の64ビットバージョンと競合するためです)。32ビットバージョンでopenjdk-jre-7をインストールしようとすると、同じことが起こります。

答えができます私は、64ビットシステム上でJavaの32ビットアプリケーションを実行し、インストールすることを提案しia32-sun-java6-binますが、この名前(または何かを持つとはパッケージが存在しないia32とJavaが)。

システム全体のJavaインストールを32ビットに切り替えずにSoapUIを実行するにはどうすればよいですか?


実際に、シェルスクリプトを編集していくつかの異なるパラメーターを渡すことにより、64ビットバージョンでsoapUIを実行することができました。正確に自分がしたことを調べなければなりません。
パエロエベルマン

リポジトリから64ビットと32ビットの両方のJavaをインストールする方法については、askubuntu.com / questions / 111947 /…を参照してください。デフォルトも変更できます。
user68186 14年

回答:


4

Javaの複数のバージョンをインストールするのは非常に簡単です。バージョン間を気まぐれに切り替えるのはやや難しい(退屈です)。

tldr

  1. apt-get one
  2. 他を解凍
  3. 必要なパスをエクスポートする

apt-get one version

主に使用するバージョンを決定します。または、どちらを自動更新するかを決定します。または、コインを裏返します。使用する必要さえありませんapt-get。システムで両方のパッケージを手動で保守するだけです(次の見出しを参照)。

ポイントは、Ubuntuのパッケージマネージャーを使用して、javaのようなパッケージの1つのバージョンを正確に管理する方が簡単だということです。あなたは残りの世話をするつもりです。

他を解凍

jdk tarballをダウンロードします。に抽出し/optます。

それらを切り替える

パッケージマネージャーにプライマリインストールを処理させます。必要に応じて、いくつかの変数を他の変数にエクスポートします。私は多くのコマンドラインで作業しているので、私にとっては大丈夫な解決策です。私は気にします:

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

また、シンボリックリンクjdk/-> jdk1.6.0_3/私は怠け者で、jdkの増分アップグレードごとに.bashrcおよびその他のスクリプトを再構成するのが好きではないためです。

気になる環境変数:

JAVA_LIBDIR
JNI_LIBDIR
JAVAJNI_LIBDIR
JVM_ROOT
JAVA_HOME
PATH

.debtarballの代わりに他のアーキテクチャを入手することもできませんか?
-0xC0000022L

@ 0xC0000022Lアイデアは、各バージョンを独自のディレクトリに含めることです。あなたがデブでそれを行うことができれば、素晴らしい!
djeikyb

2

設置

最初に、Sunから最新の32ビットJDK(JREではない)をダウンロードします。当時は、これはjdk-6u7-linux-i586.binでした。

javaパッケージをインストールします。

sudo apt-get install java-package 

次に、java-packageを使用して、ダウンロードしたバイナリから.debパッケージをビルドします。あなたはそれをだまして32ビットパッケージを構築する必要があります:

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

これにより、.debパッケージが生成されます。何らかの理由で、パッケージ名に_amd64サフィックスが付いています。パッケージをインストールします。

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

update-alternativesを使用して、新しいJDKを選択します。私のために/usr/lib/j2sdk1.6-sunにインストールされました。

sudo update-alternatives --config java 

java -versionを実行すると、正しいバージョンが表示されるはずです。

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ビットEclipse

Eclipseの32ビットバージョンを再インストールする必要がありました(SWTにはネイティブコードが含まれているため)。〜/ .eclipseディレクトリを削除しなければ、Eclipseが起動しません(これには、プラグインの新しいバージョンを再インストールする必要があります)。最後に、インストール場所(/usr/lib/j2sdk1.6-sun)を使用してJava-> Installed JREに新しいJREを追加し、それをデフォルトとして選択します。

ref


おかげで、私はこれを試してみます... 32ビットのものをデフォルトにしたくないのですが、64ビットで動作しない少数のプログラムにのみ使用してください。
パエロエベルマン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.