5

当我尝试在 Windows 7 上启动 Eclipse Juno 时,会出现一个消息框,显示“发生错误。请参阅日志文件”,并且 Eclipse 不会启动。我尝试重命名我的工作区文件夹或更改存储在 eclipse_root_folder\configuration.settings\org.eclipse.core.net.prefs 中的 eclipse 工作区设置,但它不起作用。我已经使用了 2 个月,以前没有发生过这种情况。有什么解决办法吗?

!SESSION 2013-03-11 15:17:16.709 -----------------------------------------------
eclipse.buildId=M20120914-1800
java.version=1.6.0_25
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product

!ENTRY org.eclipse.osgi 4 0 2013-03-11 15:17:20.919
!MESSAGE Application error
!STACK 1
java.lang.NoSuchMethodError: sun.misc.ProxyGenerator$ConstantPool.seTReadOnly()V
    at sun.misc.ProxyGenerator.generateClassFile(Unknown Source)
    at sun.misc.ProxyGenerator.generateProxyClass(Unknown Source)
    at java.lang.reflect.Proxy.getProxyClass(Unknown Source)
    at java.lang.reflect.Proxy.newProxyInstance(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.annotationForMap(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.parseAnnotation(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(Unknown Source)
    at java.lang.Class.initAnnotationsIfNecessary(Unknown Source)
    at java.lang.Class.getAnnotation(Unknown Source)
    at sun.reflect.annotation.AnnotationType.<init>(Unknown Source)
    at sun.reflect.annotation.AnnotationType.getInstance(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.parseAnnotation(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(Unknown Source)
    at java.lang.Class.initAnnotationsIfNecessary(Unknown Source)
    at java.lang.Class.getAnnotation(Unknown Source)
    at sun.reflect.annotation.AnnotationType.<init>(Unknown Source)
    at sun.reflect.annotation.AnnotationType.getInstance(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.parseAnnotation(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(Unknown Source)
    at java.lang.Class.initAnnotationsIfNecessary(Unknown Source)
    at java.lang.Class.getAnnotation(Unknown Source)
    at sun.reflect.annotation.AnnotationType.<init>(Unknown Source)
    at sun.reflect.annotation.AnnotationType.getInstance(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.parseAnnotation(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(Unknown Source)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(Unknown Source)
    at java.lang.reflect.Field.declaredAnnotations(Unknown Source)
    at java.lang.reflect.Field.getAnnotation(Unknown Source)
    at java.lang.reflect.AccessibleObject.isAnnotationPresent(Unknown Source)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processFields(InjectorImpl.java:617)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processClass(InjectorImpl.java:575)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processClass(InjectorImpl.java:568)
    at org.eclipse.e4.core.internal.di.InjectorImpl.processClassHierarchy(InjectorImpl.java:556)
    at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:87)
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:319)
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:240)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:161)
    at org.eclipse.e4.core.services.translation.TranslationProviderFactory.bundleTranslationService(TranslationProviderFactory.java:34)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultHeadlessContext(E4Application.java:417)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultContext(E4Application.java:434)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:182)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:557)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:543)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
  • 我有最新版本的java
  • /eclipsepath/eclipse.exe -clean [这不起作用]
  • 我没有在我的电脑上进行任何更改
4

10 回答 10

6

Eclipse 将您的项目的副本存储在它的缓存中。当 Eclipse 崩溃(这种情况发生)时,可能会发生此缓存已损坏的情况,因此 Eclipse 将无法重新启动。从 '--clean' somesomes 开始可以解决这个问题,但并非总是如此。

以我的经验,一种解决方案是删除项目的缓存。在您的工作区中查找“.metadata”文件夹,并在 Eclipse 未运行时将其删除(以防万一)。然后再次启动 Eclipse。

您可能会丢失您的运行配置首选项,然后您可以从“.metadata/.plugins/org.eclipse.debug.core/.launches”的备份副本中恢复这些首选项。

于 2014-07-22T10:32:22.897 回答
3

当甚至“干净”命令失败时,我也有很好的结果

eclipse -clean -cleanPersistedState

除此之外,我会使用 SysInternals(或 ProcMon,或类似实用程序)的 FileMon 来尝试查看究竟是什么操作失败了,或者 Eclipse 在哪里寻找它的数据。

于 2014-07-28T20:23:12.543 回答
3

尝试在命令提示符下执行以下行:

/eclipsepath/eclipse.exe -clean
于 2013-03-11T13:32:41.320 回答
2

eclipse.buildId=M20120914-1800 java.version=1.6.0_25 java.vendor=Sun Microsystems Inc. BootLoader 常量:OS=win32, ARCH=x86_64, WS=win32, NL=en_US 框架参数:-product org.eclipse.epp .package.jee.product 命令行参数: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product

不,您没有最新版本的 java,您的 eclipse 使用的是 java 1.6,最新的 java 是 1.8

似乎有一些不匹配,即。操作系统是 win32,arch 是 x86_64。确保如果操作系统是 32 位,Java 和 Eclipse 也是 32 位

于 2014-07-22T00:35:52.297 回答
1

您确定您为正确的处理器架构下载了 Eclipse/JAVA 版本吗?
看起来尝试在您的系统上混合运行 32 位和 64 位应用程序,也许您更新了 eclipse/java/ 等或添加了一些新库?

于 2013-03-11T13:37:20.743 回答
1

在终端中运行以下命令

/full/path/to/second/eclipse -clean
于 2014-07-28T16:04:08.573 回答
1

您可能没有使用您认为的 Java 版本。您需要通过eclipse.ini向 Eclipse 指定要使用的 JVM 。否则,它可能会从您的系统路径中获取非预期版本。

于 2014-07-25T03:11:22.203 回答
1

在您的文件管理器中执行以下操作。

rm YOUR_WORKSPACE/.metadata/.plugins/org.eclipse.core.resources/.snap

rm /home/anoop/workspace2/.metadata/.plugins/org.eclipse.core.resources/.snap

于 2014-07-28T08:25:49.873 回答
1

--clean 在 Eclipse 崩溃后重新启动时帮助了我。

于 2016-08-04T06:42:15.057 回答
0

您是否尝试将计算机恢复到昨天?它当然不如其他一些答案那么优雅,但我敢打赌,你只是没有考虑过一些改变(或注意到 - 后台更新,也许?),并且恢复将解决任何问题。

于 2014-07-28T19:12:29.633 回答