JDKのアンインストールでハマった

2月 11, 2012

ことの発端は何だったか忘れた。フツーにJDKのアップデートをしようとしたのだと思うが、途中で何かがおかしくなり、一旦アンインストールする必要にせまられた。そしてハマった。以下は迷走の記録で、他の誰にも役に立たないだろうし、自分が今思い返しても何が何だかよくわからないが、とりあえず書き記しておく。JDKアンインストールの正式な手順は後半に記載しておくので、迷走記録はスキップしてもらっていいです。



当初、JDKをアンインストールする意図で/usr/javaをまるごとrmで削除した。
で、再インストールしたのだが。(これ以前のダウンロード手順等は省略)

1.
# sh jdk_6u29_linux_x64_rpm.bin


上記を実行すると、以下のエラーになる。

package jdk-2000:1.6.0_29-fcs.x86_64 is already installed.


きちんとアンインストールされていないからこういうエラーになる。
分かっていながら、次に以下を試す(完全に迷走している)。

2.
# rpm -ivh –force jdk_6u29_linux_x64_rpm


上記により強制的にインストール実行すると、パスは展開されるがjava実行時に別のエラーになる(そりゃそうだ)。

Error: unpack could not create JAR file:/path/to/jar file


何かヤケクソになり、2.の後に1.を実行、というのもやってみた。この時生きているのは古いJavaの方で、Versionチェックをするとインストールした/usr/java/default/bin/javaではなく、/usr/bin/javaが実行されている。パスを指定すると以下のエラーになる。

# /usr/java/default/bin/java -version

Error occurred during initialization of VM java/lang/ NoClassDefFoundError: java/lang/Object


・・・と、うだうだと書き連ねたが、JDKのアンインストール手順はというと。
結論としてはrpm -qaで”fcs”とつく対象を洗い出し、それを削除すればよい。

# rpm -qa | grep jdk
# rpm -e jdk_1.6.0_29.fcs


この後sh jdk_6u29_linux_x64_rpm.binを実行したところ、無事にパスが展開されてホッとする。ただしこのままだとまだ/usr/bin/javaが有効なので以下の作業も実施。

# mv /usr/bin/java /usr/bin/java.bak
# ln -s /usr/java/default/bin/java /usr/bin/java

#java -version
java version “1.6.0_29″ ←ようやく期待値が得られた…


やれやれ・・・


Categories: Java