メンチカツには醤油でしょ!!

ITエンジニア徒然 (AWS/Java/JavaScript/Google Spreadsheets/Jenkins/Mac/外部コミュニティ・勉強会レポ)

Javaをアップデートして、Eclipse/Pleiadesを起動しようとしたらエラー

Javaをアップデートして、Eclipse/Pleiadesを起動しようとしたらエラー

こんな感じ。

f:id:ryoichi0102:20160121081300j:plain

----------------------------------------
Java was started but returned exit code=13
C:\ProgramData\Oracle\Java\javapath\javaw.exe
-Dosgi.requiredJavaVersion=1.7
-Xms256m
-Xmx1g
-Xverify:none
-javaagent:dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
-jar C:\pleiades\eclipse\plugins\org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar
-os win32
-ws win32
-arch x86_64
-showsplash
-launcher C:\pleiades\eclipse\eclipse.exe
-name Eclipse
--launcher.library C:\pleiades\eclipse\plugins\org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.300.v20150602-1417\eclipse_1611.dll
-startup C:\pleiades\eclipse\plugins\org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar
--launcher.appendVmargs
-exitdata 1e04_6c
-product org.eclipse.epp.package.jee.product
-vm C:\ProgramData\Oracle\Java\javapath\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms256m
-Xmx1g
-Xverify:none
-javaagent:dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
-jar C:\pleiades\eclipse\plugins\org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar
----------------------------------------

なんだか仰々しいですね。。


C:\ProgramData\Oracle\Java\javapath

java.exe
javaw.exe
javaws.exe
を参照しているわけですが、これがシンボリックリンクになっていて、
この参照先が存在しなかったり変わっていたりすると
Eclipse起動時にエラーが出ます。

Javaをアップデートすると
"C:\Program Files (x86)\Java\jre1.8.0_70\bin\java.exe"

"C:\Program Files (x86)\Java\jre1.8.0_71\bin\java.exe"
になったりするのですが、
このタイミングで、シンボリックリンクの参照先がJDKからJREに書き替えられてしまい
これが原因で起動時エラーが出るようになってしまいます。


Windowsでのシンボリックリンクの参照先の変更は、削除+作成で実施します。

シンボリックリンクの削除
エクスプローラー上でdelキーやコンテキストメニューから通常のファイル同様消すことができます。

シンボリックリンクの作成
Windowsコマンドライン管理者権限で実行して

> mklink C:\ProgramData\Oracle\Java\javapath\java.exe "C:\Program Files\Java\jdk1.8.0_66\bin\java.exe"
> mklink C:\ProgramData\Oracle\Java\javapath\javaw.exe "C:\Program Files\Java\jdk1.8.0_66\bin\javaw.exe"
> mklink C:\ProgramData\Oracle\Java\javapath\javaws.exe "C:\Program Files\Java\jdk1.8.0_66\bin\javaws.exe"

をそれぞれ実行します。