无法打开Eclipse,因为ClassNotFoundException:WToolkitHookQTJA

时间:2015-02-12 16:38:54

标签: java eclipse system-paths

我突然无法打开Eclipse。当我尝试时,日食加载屏幕会出现一分钟: Eclipse Loading

然后我收到此错误消息: "发生错误。请参阅日志文件{日志文件的路径}"

Eclipse Error Message

当我检查日志文件时,我发现根本原因是找不到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:org.eclipse.swt_3.103.1.v20140903-1938找不到com.mercury.ftjadin.hooks.interfaces.WToolkitHookQTJA     在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)     在java.lang.ClassLoader.loadClass(ClassLoader.java:357)

我怀疑发生这种情况的原因是因为我的系统路径上有两个javas,最近我不得不在系统路径中首先出现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?

3 个答案:

答案 0 :(得分:1)

eclipse.ini中尝试specifying the JVM

-vm
C:\Java\JDK\1.6\bin\javaw.exe

(或者可能在命令行中使用相同的语法,如果我没记错的话)

答案 1 :(得分:0)

尝试删除_JAVA_TOOL_OPTIONS等环境变量。 请参阅专门针对在Eclipse https://www-304.ibm.com/support/docview.wss?uid=swg21656363

上构建的Rational应用程序开发人员的技术说明

答案 2 :(得分:-2)

我遇到了同样的问题。

<强>解决方案: -

卸载java。安装新版本的java。设置java路径。重新启动系统(打开cmd,检查java是否已正确安装)。现在启动Eclipse。