突然 Eclipse を開けなくなりました。試してみると、Eclipse の読み込み画面が 1 分間表示されます。
次に、「エラーが発生しました。ログ ファイル {ログ ファイルへのパス} を参照してください」というエラー メッセージが表示されます。
ログ ファイルを確認したところ、根本的な原因は WToolkitHookQTJA クラスを見つけられなかったことであることがわかりました。
java.lang.NoClassDefFoundError: com/mercury/ftjadin/hooks/interfaces/WToolkitHookQTJA
at org.eclipse.swt.widgets.Shell.<init>(Shell.java:297)
at org.eclipse.swt.widgets.Shell.internal_new(Shell.java:419)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.eclipse.ui.internal.WorkbenchPlugin.getSplashShell(WorkbenchPlugin.java:1360)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:114)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
原因: java.lang.ClassNotFoundException: com.mercury.ftjadin.hooks.interfaces.WToolkitHookQTJA が org.eclipse.swt_3.103.1.v20140903-1938 で org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal( BundleLoader.java:432) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345) org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337) org .eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160) at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
これが発生している理由は、システム パスに 2 つの Java があるためだと思われます。最近、システム パスで jdk8 (System32 にはないもの) を最初に発生させて、他の何かを取得する必要がありました。正しく機能します。cmd を開いて入力するwhere java
と、次のようになります。
C:\Program Files\Java\jdk1.8.0_31\bin\java.exe
C:\Windows\System32\java.exe
したがって、私の質問は次のとおりです。(a) jdk8 を System32 Java の後に移動せずに、(b) Eclipse を再インストールせずに、Eclipse を再度開くにはどうすればよいですか?