eclipseがerror code 13 で起動しないときの対処法!

Javaは嫌というほど脆弱性が報告されていることもありこまめにアップデートしておくに越したことはない。まぁそれだけ利用されているということでもありますが。しかし、アップデートすることで既存アプリケーションが起動しなくなったり動作に影響を与えることもあるので悩ましい。

私の場合、eclipse が以下のようなエラーで起動しなくなってしまった。たまーにやる気だすとこれだもんなぁ。。

事象

java_exit_code_13

java_exit_code_13

トラブルシューティング

ひとまず java -version と打ってパスが通っているのか確認する。v1.8.0_60 にパスは通っていることが確認できる。システム環境変数には、”C:\ProgramData\Oracle\Java\javapath” というパスがインストーラによって登録されている。

eclipse.ini に直接バージョン指定して利用している場合は ini ファイルに手動でパスを追加することも方法のひとつだが、バージョンを本番環境に合わせる必要がある場合などを除いて、いちいち Java 実行環境のバージョンアップの度にそんなことはシタクナイ。。そもそも、パスを明示的に追加しなくても動いていたのだからそこが何でか判らないと気持ちがわるいというのもあります。

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
 
C:\Users\daisuke>java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) Client VM (build 25.60-b23, mixed mode)
 
C:\Users\daisuke>echo %path%
C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\ProgramData\Oracle\Java\javapath;C:\Perl\bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;・・・(略)

javapath フォルダ

javapath

javapath

試しに、C:\ProgramData\Oracle\Java\javapath; を削除してみるとエラーメッセージが以下のように変わった。当たり前だが、Java 実行環境が見つからないという意味である。このことから、javapath フォルダ内にはシンボリックリンクが作成されているが、シンボリックリンク経由だとこの事象が出ているようです。

javapathなしの場合

javapathなしの場合

また、eclipse.iniにバージョン指定している場合でも、Java のアップデート等によってシステム環境変数に C:\ProgramData\Oracle\Java\javapath; が PATH の先頭に追加されるので、eclipse.ini で指定したパス
よりも優先された場合、同じ事象が発生すると思われます。

システム環境変数から C:\ProgramData\Oracle\Java\javapath; のエントリを削除し、eclipse.ini に明示的に java.exe の実態が存在するパスを指定することで回避はできそうだが、先述のように eclipse.ini を毎回変更するのは面倒なのでいやだ。どうしたものか。。

原因

実態となるjava.exeのパスを調べたところ、原因がわかった。 64bit の環境に 32bit 用の Java をインストールしてしまったようだ。 32bitのインストールパスには、1.8.0_60 が存在しているが、64bitのインストールフォルダには、1.8.0_60 が存在していないのでした。。

64bitのパス

64bitのパス

64bitのパス

32bitのパス

32bitのパス

32bitのパス

対応策

64bit用のJava実行環境をインストールしなおすw
正しく、C:\ProgramData\Oracle\Java\javapath が 64bit 版にリンク設定されていれば eclipse.ini へのパス指定は不要かと。

自動ではなく、下記URLから手動で”Windows オフライン (64ビット)”からダウンロードしてインストールしたほうがよさそうですね!
https://java.com/ja/download/manual.jsp

64bit版のJava

64bit版のJava

ちなみにコマンドラインでインストールされている Java が 32bit 版か 64bit 版か判れば良いのですが、java -version の出力内容は変わらず。。

スポンサーリンク