2016-11-08 102 views
3

今天我下載了Eclipse Neon。當我第一次運行它時,它要求我選擇一個文件夾作爲我的工作區。這樣做了以後,它拋出我會重定向我到一個日誌文件,我選擇了保存我的工作區文件夾內的錯誤:無法創建Eclipse工作區

!SESSION 2016-11-08 18:30:23.149 ----------------------------------------------- 
eclipse.buildId=4.6.1.M20160907-1200 
java.version=9-ea 
java.vendor=Oracle Corporation 
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=el_GR 
Framework arguments: -product org.eclipse.epp.package.java.product 
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product 

!ENTRY org.eclipse.osgi 4 0 2016-11-08 18:35:48.594 
!MESSAGE Application error 
!STACK 1 
org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct 
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:386) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:294) 
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultHeadlessContext(E4Application.java:490) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultContext(E4Application.java:504) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:203) 
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:626) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:604) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138) 
    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:388) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) 
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0([email protected]/Native Method) 
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke([email protected]/NativeMethodAccessorImpl.java:62) 
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke([email protected]/DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke([email protected]/Method.java:535) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519) 
Caused by: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct 
    at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:151) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:375) 
    ... 22 more 
Caused by: java.lang.ClassNotFoundException: javax.annotation.PostConstruct cannot be found by org.eclipse.e4.core.di_1.6.1.v20160712-0927 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:410) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161) 
    at java.lang.ClassLoader.loadClass([email protected]/ClassLoader.java:424) 
    ... 24 more 

!ENTRY org.eclipse.e4.ui.workbench 4 0 2016-11-08 18:35:48.918 
!MESSAGE FrameworkEvent ERROR 
!STACK 0 
java.lang.NoClassDefFoundError: javax/annotation/PreDestroy 
    at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:426) 
    at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:154) 
    at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:78) 
    at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:111) 
    at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.handleInvalid(TrackableComputationExt.java:74) 
    at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:176) 
    at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose(EclipseContextOSGi.java:106) 
    at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleChanged(EclipseContextOSGi.java:139) 
    at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:903) 
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) 
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) 
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120) 
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) 
    at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:156) 
    at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) 
    at org.eclipse.osgi.container.Module.doStop(Module.java:634) 
    at org.eclipse.osgi.container.Module.stop(Module.java:498) 
    at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:202) 
    at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:165) 
    at java.lang.Thread.run([email protected]/Thread.java:843) 
Caused by: java.lang.ClassNotFoundException: javax.annotation.PreDestroy cannot be found by org.eclipse.e4.core.di_1.6.1.v20160712-0927 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:410) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161) 
    at java.lang.ClassLoader.loadClass([email protected]/ClassLoader.java:424) 
    ... 21 more 

很抱歉的長期職位。有任何想法嗎?

+0

'java.version = 9- ea'?您可能想要更改它至少運行Eclipse。 – zyexal

+0

無法找到javax包中的類。這是jre/jdk的一部分。嘗試用當前穩定版本重新安裝java。 – f1sh

+0

爲什麼我必須更改java.version? –

回答

9

您使用的是Java 9.目前這不最近的工作開始Eclipse構建的Java 9.

Eclipse的錯誤493761描述了這個問題,目前正在安排固定在Eclipse 4.6.2(Neon.2 )

在Eclipse 4.6.2可用之前,使用Java 8 JDK來運行Eclipse。

更新:

與Java 9運行Eclipse,你需要修改 '的eclipse.ini' 文件Eclipse安裝並添加行:

--add模塊= ALL-SYSTEM

作爲文件中-vmargs行後面的一行。這添加了包含缺失類的Java 9模塊。

Eclipse Oxygen.1a(4.7.1a)將於2017年10月11日發佈,將具有完整的Java 9支持。

另請參閱Eclipse wiki中的Configuring Eclipse for Java 9

5

對我的作品使用最新的Java 9月初訪問建立b143和霓虹燈發佈4.6.0

只需添加

--add模塊= java.annotations.common

對日食ini -vmargs

4

使它在OSX Sierra工作,增加以下內容:

--add-modules=java.se.ee 

eclipse.ini

1

添加--add模塊= java.se.ee結束時,在STS.ini或的eclipse.ini -vmargs之後將解決發射問題。

-vmargs 
--add-modules=java.se.ee 
-Dosgi.requiredJavaVersion=1.8 
-Xms40m 
-Dosgi.module.lock.timeout=10 
-Xverify:none 
-Dorg.eclipse.swt.browser.IEVersion=10001 
-Xmx1200m 

指的鏈接:https://bugs.eclipse.org/bugs/show_bug.cgi?id=493761以獲取更多信息