概要
PleiadesのEclipseを日頃から使っています。
通常Java開発で使用しているのは「Java」の「Full Edition」ですが、使用しているEclipseの「ヘルプ」-「更新の確認」から定期的にEclipse自体のアップデートをしています。
最近、この「更新」をしたところ、Eclipseがスプラッシュ画面さえ出ず、起動しなくなるという状況になりました。
タスクマネージャでもEclipseのプロセスが起動している状況でもなく、とにかくいくら起動しようとしても何もおきない状況に陥ります。
Eclipseの起動ログを見ても、それらしいエラーが記載されておらず、ちょっとややこしい感じになったかな?と情報を集めてみました。
この現象は、WindowsでもmacOSでも、どちらでも発生しています。
Eclipseの起動ログを確認する方法
Eclipseの起動ログは、Eclipseの「workspace」フォルダ内の「.metadata」内にある「.log」に出力されます。
WindowsでもmacOSでも、どちらも同じです。
2022-09.20220914では解消している?
9/22時点でPleiadesではEclipseが更新配布されています。
このバージョンでは、「更新の確認」をしても、現時点では「更新個数ゼロ」なので、現象は起きませんが、今まで使ってきたバージョンや環境を「修正できるなら修正して使いたい」という人向けに以降は記載してます。
Eclipse環境をクリーンインストールしてやるぜ!という人は頑張ってください。
起動ログに出ないならコンソールから起動してメッセージを確認する
「eclipse.exe」をクリックして起動するのではなく、コマンドプロンプト等から起動することでコンソールにメッセージが表示されるので、ここから探ります。
★なお、「eclipse.exe」ではなく「eclipsec.exe」を起動します。
続いて、「eclipsec.exe」のあるフォルダへ移動します。
C:\pleiades\2022-06\eclipse>eclipsec.exe
OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.
Error occurred during initialization of VM
Multiple garbage collectors selected
なんか表示されましたね・・・・
OpenJDKほにゃらら・・・は、warningなので無視します。
エラー内容は「Error occurred during initialization of VM」ですね。
エラー原因は「Multiple garbage collectors selected」です。
ふむ、ということは「eclipse.ini」内の設定値に原因がありそうです。
それでは、eclipse.iniを確認してみます。
20220619版の初期状態でのeclipse.iniは下記のようになっています。
-vm
C:/pleiades/2022-06/java/17/bin
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=11
-Dsun.java.command=Eclipse
--add-modules=ALL-SYSTEM
--add-opens=java.base/java.lang=ALL-UNNAMED
-Dosgi.dataAreaRequiresExplicitInit=true
-Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=false
-XX:+UseParallelGC
-XX:InitialRAMPercentage=5
-XX:MaxRAMPercentage=25
-XX:TieredStopAtLevel=1
-Xverify:none
-javaagent:dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
-javaagent:lombok.jar
「更新の確認」を実行すると下記のようになります。
-vm
C:/pleiades/2022-06/java/17/bin
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.600.v20220720-1916
-product
org.eclipse.epp.package.java.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
--add-opens=java.base/java.lang=ALL-UNNAMED
-Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=false
-XX:+UseParallelGC
-XX:InitialRAMPercentage=5
-XX:MaxRAMPercentage=25
-XX:TieredStopAtLevel=1
-Xverify:none
-javaagent:dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
-javaagent:lombok.jar
-Dosgi.requiredJavaVersion=17
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-Dsun.java.command=Eclipse
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=11
-Dosgi.dataAreaRequiresExplicitInit=true
-Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true
-Xms256m
-Xmx2048m
--add-modules=ALL-SYSTEM
エラー内容の「Multiple garbage collectors selected」という視点で見てみると、確かに更新後は2個の設定値が見受けられます。
-XX:+UseParallelGC
-XX:+UseG1GC
起動しない原因はeclipse.ini内の「-XX:+UseG1GC」
ということで、初期状態にあったガベージコレクターの設定値を採用することとし、「-XX:+UseG1GC」を削除することにします。
-XX:+UseG1GC
上記の1行を削除したらeclipse.iniを保存してEclipseを起動します。
これで、無事Eclipseが起動するようになりました。