Hatena::ブログ(Diary)

shutdown -r now このページをアンテナに追加 RSSフィード

2012-08-08

64bit環境で、32bitのEclipseを動作させる

新PCで、やっとOSを64bitにした。前々から、64bit化には取り組んでいたのだが、flash, プリンタドライバ, Eclipse環境等、もろもろの移行がめんどくさくって、ついつい32bitのままこれまで使ってきた。(Linuxの場合、PAEカーネルを入れれば、32bit環境でも4GB以上のメモリも使えるからなぁ。)

今回は、開発環境だけ、新PCに移行するので、頑張って移行してみた。Eclipseは、Javaで実装されているけれど、パフォーマンスのため、ネイティブライブラリを使用しておりそのため、そのままでは、32bit版のEclipseは、64bit環境では動作しない。Eclipseにいろいろプラグインを入れていると、新しく64bitで環境を作るのはめんどくさいので、以下のようにして64bit環境で32bit版Eclipseを動かすことにした。

端的にいうと、32bit版のJDKを入れて、32bit版Eclipseは、それを使用して実行するようにすればよい。

64bit版のJDKや64bit版のEclipseとの同居も可能だ。

Ubuntu 12.04 の64bitに構築する。

  • ここから32bit版のJDKのアーカイブ(jdk-7u5-linux-i586.tar.gz)をダウンロードする。
  • ダウンロードしたアーカイブを/opt に展開する。
$ tar zxvf jdk-7u5-linux-i586.tar.gz
$ sudo ln -s jdk1.7.0_05-i386 jdk1.7.0-i386
  • Eclipseのディレクトリに以下のシェルスクリプトを作成する
export JAVA_HOME=/opt/jdk1.7.0-i386/
export PATH=$JAVA_HOME/bin:$PATH
$ECLIPSE_HOME/eclipse $*

  • シェルクスクリプトを実行し、Eclipseを起動する

2011-01-20

alternativesでJava環境の切り替え

よく忘れるのでメモ。

うっかり、OpenJDK等を入れちまった場合に、Sun JDKに戻したい場合は、alternativesを使う。

tmori@signify:~$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      優        Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/java-6-sun/jre/bin/java to provide /usr/bin/java (java) in manual mode.

(2011/3/14 追記)

この方法だと、javaコマンドは変更できても、javacコマンドは変更されないので、以下のようにslave指定をする。

sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.5.0_19/bin/java 15019\
      --slave /usr/bin/jar jar /usr/java/jdk1.5.0_19/bin/jar\
      --slave /usr/bin/javac javac /usr/java/jdk1.5.0_19/bin/javac\
      --slave /usr/bin/javadoc javadoc /usr/java/jdk1.5.0_19/bin/javadoc

no title参照。