2017-09-22 1 views
1

J'aime utiliser l'éclipse d'oxygène pour le développement de Java. Je n'ai pas utilisé cet IDE pour une année environ. Je me souviens vraiment l'aimer. Cependant, je me souviens que ce n'est pas l'IDE le plus facile à installer. Toute aide serait grandement appréciée.Pourquoi ne pas éclipser le début d'oxygène (pour la première fois)?

Voici le fichier Java que j'ai installé.

  • Java 9 Java
  • Kit SE Development 9

Je ne sais pas ce qui se passe. N'hésitez pas à proposer un autre IDE.

Voici le fichier journal:

!SESSION 2017-09-22 11:44:55.501 ----------------------------------------------- 
eclipse.buildId=4.7.0.I20170612-0950 
java.version=9 
java.vendor=Oracle Corporation 
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US 
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 2017-09-22 11:45:10.776 
!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:410) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318) 
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultHeadlessContext(E4Application.java:491) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultContext(E4Application.java:505) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:204) 
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:614) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151) 
    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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.base/java.lang.reflect.Method.invoke(Unknown Source) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1499) 
    at org.eclipse.equinox.launcher.Main.main(Main.java:1472) 
Caused by: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct 
    at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:124) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:399) 
    ... 23 more 
Caused by: java.lang.ClassNotFoundException: javax.annotation.PostConstruct cannot be found by org.eclipse.e4.core.di_1.6.100.v20170421-1418 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) 
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 25 more 

!ENTRY org.eclipse.e4.ui.workbench 4 0 2017-09-22 11:45:10.788 
!MESSAGE FrameworkEvent ERROR 
!STACK 0 
java.lang.NoClassDefFoundError: javax/annotation/PreDestroy 
    at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:450) 
    at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:156) 
    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:178) 
    at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose(EclipseContextOSGi.java:99) 
    at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleChanged(EclipseContextOSGi.java:141) 
    at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) 
    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:168) 
    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.base/java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: javax.annotation.PreDestroy cannot be found by org.eclipse.e4.core.di_1.6.100.v20170421-1418 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) 
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 21 more 
!SESSION 2017-09-22 11:47:41.156 ----------------------------------------------- 
eclipse.buildId=4.7.0.I20170612-0950 
java.version=9 
java.vendor=Oracle Corporation 
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US 
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 2017-09-22 11:47:48.112 
!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:410) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318) 
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultHeadlessContext(E4Application.java:491) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultContext(E4Application.java:505) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:204) 
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:614) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151) 
    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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.base/java.lang.reflect.Method.invoke(Unknown Source) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1499) 
    at org.eclipse.equinox.launcher.Main.main(Main.java:1472) 
Caused by: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct 
    at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:124) 
    at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:399) 
    ... 23 more 
Caused by: java.lang.ClassNotFoundException: javax.annotation.PostConstruct cannot be found by org.eclipse.e4.core.di_1.6.100.v20170421-1418 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) 
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 25 more 

!ENTRY org.eclipse.e4.ui.workbench 4 0 2017-09-22 11:47:48.124 
!MESSAGE FrameworkEvent ERROR 
!STACK 0 
java.lang.NoClassDefFoundError: javax/annotation/PreDestroy 
    at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:450) 
    at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:156) 
    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:178) 
    at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose(EclipseContextOSGi.java:99) 
    at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleChanged(EclipseContextOSGi.java:141) 
    at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) 
    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:168) 
    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.base/java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: javax.annotation.PreDestroy cannot be found by org.eclipse.e4.core.di_1.6.100.v20170421-1418 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) 
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 21 more 

Répondre

14

Pour exécuter Eclipse avec Java 9 vous devez modifier le fichier 'eclipse.ini' dans votre installation Eclipse et ajoutez la ligne:

--add-modules=java.se.ee 

en tant que ligne suivant la ligne -vmargs dans le fichier. Cela ajoute le module Java 9 contenant les classes manquantes.

Vous pouvez également utiliser

--add-modules=ALL-SYSTEM 

Voir Eclipse Wiki: Configure Eclipse for Java 9. Eclipse Oxygen.1a (4.7.1a) devrait sortir le 11 octobre (2017) avec le support de Java 9 complet.

+0

'--add-modules = ALL-SYSTEM 'ne fonctionne pas pour moi, mais' --add-modules = java.se.ee' fonctionne –

1

Votre eclipse.ini devrait contenir quelque chose comme:

--launcher.appendVmargs 
-vm 
C:\Program Files\Java\jdk-9\bin\javaw.exe 
-vmargs 
-Dosgi.requiredJavaVersion=1.8 
--add-modules=ALL-SYSTEM 
1

Java 9 a quelques changements subtils que les grands programmes ont tendance à avoir des problèmes avec. Eclipse pose des problèmes à la fois sous Java 9 et Java 9 en tant qu'Exécut Java Runtime dans Workspace.

Jusqu'à ce qu'une version officielle d'Eclipse prenant en charge Java 9 sort (apparemment 11th Octobre), les utilisateurs non-puissance peut avoir une meilleure expérience en rétrogradant à Java 8.