Neon: cómo ejecutar en jdk9?

Acabo de empezar a jugar con jdk9, y me quedé atrapado al principio:

  • descargar y extraer eclipse-java-neon-m4a-win32
  • soporte de java 9 instalado (por dnd del mercado )
  • descargar e instalar jdk9u99 (solo el jdk, no el jre público)

En este punto, puedo ejecutar eclipse en mi Java por defecto (que es 8u60) tanto con jre / jdk (con el argumento / out vm en eclipse.ini) como con el soporte de java 9.

Como paso siguiente, quería ejecutar eclipse con java 9: ​​agregué vm-arg a eclipse.ini, ahora eclipse aborta su inicio con un registro de error largo (tanto ini como log se muestran a continuación).

¿Dónde está el problema?

Mi ini:

-startup plugins/org.eclipse.equinox.launcher_1.3.200.v20151021-1308.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.300.v20151013-1129 -product org.eclipse.epp.package.java.product --launcher.defaultAction openFile -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile --launcher.appendVmargs -vm d:\java\jdk\190_ea\bin\javaw.exe -vmargs -Dosgi.requiredJavaVersion=1.8 -Xms256m -Xmx1024m 

La parte superior del registro de errores (es> 900k)

 !SESSION 2016-01-22 14:31:55.974 ----------------------------------------------- eclipse.buildId=4.6.0.I20151209-2300 java.version=9-ea java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE Framework arguments: -product org.eclipse.epp.package.java.product Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.java.product !ENTRY org.eclipse.equinox.common 4 0 2016-01-22 14:31:57.113 !MESSAGE FrameworkEvent ERROR !STACK 0 org.osgi.framework.BundleException: Could not resolve module: org.eclipse.equinox.common [143] Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))" at org.eclipse.osgi.container.Module.start(Module.java:429) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1562) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) !ENTRY org.eclipse.ant.core 4 0 2016-01-22 14:31:57.175 !MESSAGE FrameworkEvent ERROR !STACK 0 org.osgi.framework.BundleException: Could not resolve module: org.eclipse.ant.core [61] Unresolved requirement: Require-Bundle: org.eclipse.core.variables; bundle-version="[3.1.0,4.0.0)" -> Bundle-SymbolicName: org.eclipse.core.variables; bundle-version="3.2.800.v20130819-1716"; singleton:="true" org.eclipse.core.variables [88] Unresolved requirement: Require-Bundle: org.eclipse.core.runtime; bundle-version="[3.3.0,4.0.0)" -> Bundle-SymbolicName: org.eclipse.core.runtime; bundle-version="3.12.0.v20151104-0048"; singleton:="true" org.eclipse.core.runtime [87] Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="[3.8.0,4.0.0)"; visibility:="reexport" -> Bundle-SymbolicName: org.eclipse.equinox.common; bundle-version="3.8.0.v20151023-1114"; singleton:="true" org.eclipse.equinox.common [143] Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))" at org.eclipse.osgi.container.Module.start(Module.java:429) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) 

Actualizar

todavía no hay suerte con el último Neon (M6) y 9-ea-113, el error registrado ha cambiado, aunque

 !SESSION 2016-04-28 16:27:53.344 ----------------------------------------------- eclipse.buildId=4.6.0.I20160317-0200 java.version=9-ea java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE Framework arguments: -product org.eclipse.epp.package.java.product Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.java.product !ENTRY org.eclipse.osgi 4 0 2016-04-28 16:28:10.145 !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:627) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:605) 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 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:520) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:670) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:609) at org.eclipse.equinox.launcher.Main.run(Main.java:1516) at org.eclipse.equinox.launcher.Main.main(Main.java:1489) 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) ... 23 more 

Que se parece al de un informe de error . Está marcado como fijo en M7.

Editar: puede descargar la última versión de eclipse que tiene soporte para Java 9 – https://www.eclipse.org/downloads/eclipse-packages/


Estoy ejecutando Java (TM) SE Runtime Environment (build 9-ea + 158) y eclipse Version: Release Neon.2 (4.6.2) – Build id: 20161208-0600

De alguna manera las soluciones con -Djdk.launcher.addmods= y -addmods usando los valores java.se.ee o java.annotations.common no funcionaron.

A continuación se muestra la solución que funcionó para mí:

 --add-modules=java.se.ee 

Fuente: https://issues.jboss.org/browse/JBIDE-22417?focusedCommentId=13310535&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13310535

Para deshacerse del problema java.lang.ClassNotFoundException: javax.annotation.PostConstruct , intente agregar la siguiente línea debajo de -vmargs en su eclipse.ini :

 -Djdk.launcher.addmods=java.annotations.common 

(Cambiará a --add-modules=java.annotations.common en JDK 9 EA build 132)

Ver https://bugs.eclipse.org/bugs/show_bug.cgi?id=493761

ACTUALIZACIÓN: Desde esta respuesta, más cosas cambiaron, actualmente estoy ejecutando Eclipse con JDK 9 b177 y estos vmargs agregados: –add-modules = java.xml.bind, java.xml.ws.annotation

Lanzamiento de Eclipse Oxygen.1a (4.7.1a)

Dado que muchas preguntas y respuestas han sido marcadas como duplicadas de esto, las soluciones ya sugeridas son, sin embargo, hacky.

Actualización a partir del 11 de octubre de 2017 : actualizará al último paquete de eclipse Eclipse Oxygen.1a (4.7.1a) que está marcado como liberado y es compatible con Java 9.

Agregue la siguiente línea al final de eclipse.ini

 --add-modules=java.se.ee 

Su eclipse.ini es incorrecto al especificar la JVM. En primer lugar, la opción -vm debe estar cerca del final, justo antes de cualquier línea -vmargs . En segundo lugar, no especificas la ubicación de la carpeta bin , sino el ejecutable java (o dll). Consulte la página wiki de eclipse.ini para obtener más detalles (y preste especial atención a los detalles escritos allí).

Por cierto, ¿de dónde sacaste la información para escribir eclipse.ini la manera en que lo hiciste? Me gustaría saber la fuente con la esperanza de corregir esa desinformación.

Tengo el mismo error que encuentro solución de Configurar Eclipse para Java 9

Después de la edición, debes hacerlo en el archivo eclipse.ini

  1. -vm C: \ Archivos de progtwig \ Java \ jdk-9 \ bin \ javaw.exe
  2. –add-modules = ALL-SYSTEM

Y resolverá tu problema. Su archivo eclipse.ini se ve como sigue:

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

Tuve el mismo problema. NoClassDefFoundError se muestra cuando selecciona comstackr / comstackr su proyecto con Java 9 JDK. Eclipse no puede encontrar un archivo jar requerido en la carpeta raíz JDK, por lo que no puede iniciarse por completo. Después de instalar el complemento de soporte de Java 9 desde el mercado, es posible que pueda iniciar Eclipse, pero aún verá muchos errores y no podrá comstackr un solo proyecto. La solución (por ahora) es cambiar a Java 9 JRE en “JRE instalados” en “Preferencias de proyecto”. Esto solucionó todo para mí

Tomado de aquí , es posible que desee leer el artículo completo para obtener más instrucciones