web-dev-qa-db-ja.com

ネオン:jdk9で実行するには?

Jdk9で遊び始めたばかりで、最初の段階で止まってしまいました。

  • ダウンロードして展開したEclipse-Java-neon-m4a-win32
  • インストール済みJava 9サポート( marketplace からのdndによる))
  • jdk9u99をダウンロードしてインストールしました(jdkのみで、パブリックjreではありません)

この時点で、デフォルトのJava(8u60))でjre/jdk(Eclipse.iniのvm引数付き/ out)を使用してEclipseを実行し、Java 9のサポート。

次のステップとして、Java 9:Eclipse.iniにvm-argを追加しました。Eclipseは長いエラーログで終了します(iniとログの両方を以下に示します) )。

問題はどこにありますか?

私の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

エラーログの先頭(> 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)

更新

まだ最新のネオン(M6)と9-ea-113には運がありませんが、ログに記録されたエラーは変わりましたが、

!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

バグレポート の1つに似ています。 M7では修正済みとしてマークされています。

17
kleopatra

編集:Java 9- https: //www.Eclipse.org/downloads/Eclipse-packages/


Java(TM)SEランタイム環境(ビルド9-ea + 158)およびEclipseバージョン:Neon.2リリース(4.6.2)-ビルドID:20161208-0600を実行しています

何らかの理由で-Djdk.launcher.addmods=および-addmods値を使用Java.se.eeまたはJava.annotations.common 動作しませんでした。

以下は私のために働いた解決策です:

--add-modules=Java.se.ee

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

28
Pavan Kumar

Java 11で同じEclipseクラッシュの問題に直面している人は誰でも、上記の解決策のどれもうまくいかないようです。

エラーは次のとおりです。

org.Eclipse.e4.core.di.InjectionException: Java.lang.NoClassDefFoundError: javax/annotation/PostConstruct

ここで述べたように https://bugs.Eclipse.org/bugs/show_bug.cgi?id=53339 、この問題はEclipse Photon 4.8で修正されています。

上記の回避策があります https://bugs.Eclipse.org/bugs/show_bug.cgi?id=533390#c22 。ただし、これは単なる短期的な回避策であるため、Eclipseを4.8に更新することをお勧めします

ステップ:

  1. Eclipseのconfig.iniファイルに移動します。このファイルは、/ Applications/Eclipse_4.7.2 .app/Contents/Eclipse/configuration/config.iniにあります。
  2. 以下のコンテンツを追加

org.osgi.framework.system.packages = \
 javax.accessibility,\
 javax.activation,\
 javax.activity,\
 javax.crypto,\
 javax.crypto.interfaces,\
 javax.crypto.spec,\
 javax.imageio,\
 javax.imageio.event,\
 javax.imageio.metadata,\
 javax.imageio.plugins.bmp,\
 javax.imageio.plugins.jpeg,\
 javax.imageio.spi,\
 javax.imageio.stream,\
 javax.jws,\
 javax.jws.soap,\
 javax.lang.model,\
 javax.lang.model.element,\
 javax.lang.model.type,\
 javax.lang.model.util,\
 javax.management,\
 javax.management.loading,\
 javax.management.modelmbean,\
 javax.management.monitor,\
 javax.management.openmbean,\
 javax.management.relation,\
 javax.management.remote,\
 javax.management.remote.rmi,\
 javax.management.timer,\
 javax.naming,\
 javax.naming.directory,\
 javax.naming.event,\
 javax.naming.ldap,\
 javax.naming.spi,\
 javax.net,\
 javax.net.ssl,\
 javax.print,\
 javax.print.attribute,\
 javax.print.attribute.standard,\
 javax.print.event,\
 javax.rmi,\
 javax.rmi.CORBA,\
 javax.rmi.ssl,\
 javax.script,\
 javax.security.auth,\
 javax.security.auth.callback,\
 javax.security.auth.kerberos,\
 javax.security.auth.login,\
 javax.security.auth.spi,\
 javax.security.auth.x500,\
 javax.security.cert,\
 javax.security.sasl,\
 javax.sound.midi,\
 javax.sound.midi.spi,\
 javax.sound.sampled,\
 javax.sound.sampled.spi,\
 javax.sql,\
 javax.sql.rowset,\
 javax.sql.rowset.serial,\
 javax.sql.rowset.spi,\
 javax.swing,\
 javax.swing.border,\
 javax.swing.colorchooser,\
 javax.swing.event,\
 javax.swing.filechooser,\
 javax.swing.plaf,\
 javax.swing.plaf.basic,\
 javax.swing.plaf.metal,\
 javax.swing.plaf.multi,\
 javax.swing.plaf.nimbus,\
 javax.swing.plaf.synth,\
 javax.swing.table,\
 javax.swing.text,\
 javax.swing.text.html,\
 javax.swing.text.html.parser,\
 javax.swing.text.rtf,\
 javax.swing.tree,\
 javax.swing.undo,\
 javax.tools,\
 javax.xml,\
 javax.xml.bind,\
 javax.xml.bind.annotation,\
 javax.xml.bind.annotation.adapters,\
 javax.xml.bind.attachment,\
 javax.xml.bind.helpers,\
 javax.xml.bind.util,\
 javax.xml.crypto,\
 javax.xml.crypto.dom,\
 javax.xml.crypto.dsig,\
 javax.xml.crypto.dsig.dom,\
 javax.xml.crypto.dsig.keyinfo,\
 javax.xml.crypto.dsig.spec,\
 javax.xml.datatype,\
 javax.xml.namespace,\
 javax.xml.parsers,\
 javax.xml.soap,\
 javax.xml.stream,\
 javax.xml.stream.events,\
 javax.xml.stream.util,\
 javax.xml.transform,\
 javax.xml.transform.dom,\
 javax.xml.transform.sax,\
 javax.xml.transform.stax,\
 javax.xml.transform.stream,\
 javax.xml.validation,\
 javax.xml.ws,\
 javax.xml.ws.handler,\
 javax.xml.ws.handler.soap,\
 javax.xml.ws.http,\
 javax.xml.ws.soap,\
 javax.xml.ws.spi,\
 javax.xml.ws.spi.http,\
 javax.xml.ws.wsaddressing,\
 javax.xml.xpath,\
 org.ietf.jgss,\
 org.omg.CORBA,\
 org.omg.CORBA_2_3,\
 org.omg.CORBA_2_3.portable,\
 org.omg.CORBA.DynAnyPackage,\
 org.omg.CORBA.ORBPackage,\
 org.omg.CORBA.portable,\
 org.omg.CORBA.TypeCodePackage,\
 org.omg.CosNaming,\
 org.omg.CosNaming.NamingContextExtPackage,\
 org.omg.CosNaming.NamingContextPackage,\
 org.omg.Dynamic,\
 org.omg.DynamicAny,\
 org.omg.DynamicAny.DynAnyFactoryPackage,\
 org.omg.DynamicAny.DynAnyPackage,\
 org.omg.IOP,\
 org.omg.IOP.CodecFactoryPackage,\
 org.omg.IOP.CodecPackage,\
 org.omg.Messaging,\
 org.omg.PortableInterceptor,\
 org.omg.PortableInterceptor.ORBInitInfoPackage,\
 org.omg.PortableServer,\
 org.omg.PortableServer.CurrentPackage,\
 org.omg.PortableServer.POAManagerPackage,\
 org.omg.PortableServer.POAPackage,\
 org.omg.PortableServer.portable,\
 org.omg.PortableServer.ServantLocatorPackage,\
 org.omg.SendingContext,\
 org.omg.stub.Java.rmi,\
 org.w3c.dom,\
 org.w3c.dom.bootstrap,\
 org.w3c.dom.css,\
 org.w3c.dom.events,\
 org.w3c.dom.html,\
 org.w3c.dom.ls,\
 org.w3c.dom.ranges,\
 org.w3c.dom.stylesheets,\
 org.w3c.dom.traversal,\
 org.w3c.dom.views,\
 org.w3c.dom.xpath,\
 org.xml.sax,\
 org.xml.sax.ext,\
 org.xml.sax.helpers
12
Kondal Kolipaka

Java.lang.ClassNotFoundException: javax.annotation.PostConstructの問題を取り除くには、-vmargsEclipse.iniの下に次の行を追加してみてください。

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

(JDK 9 EAビルド132で--add-modules=Java.annotations.commonに変更されます)

https://bugs.Eclipse.org/bugs/show_bug.cgi?id=493761 を参照してください

更新:この回答以来、より多くのものが変更されたため、現在JDK 9 b177とこれらの追加されたvmargsでEclipseを実行しています:--add-modules = Java.xml.bind、Java.xml.ws.annotation

11
Klara

Eclipse.iniの最後に次の行を追加します

--add-modules=Java.se.ee
4
Pratik Patil

Eclipse Oxygen.1a(4.7.1a)リリース

多くのQ&Aがこれと重複しているとマークされているため、既に提案されているソリューションはそれでもハッキングです。

2017年10月11日現在の更新-最新の Eclipseパッケージにアップグレードする必要があります Eclipse Oxygen.1a(4.7.1a)はリリース済みとしてマークされ、Java 9。

3
Naman

から解決策を見つけるのと同じエラーがありますJava 9

編集後、Eclipse.iniファイルで行う必要があります

  1. -vm C:\ Program Files\Java\jdk-9\bin\javaw.exe
  2. --add-modules = ALL-SYSTEM

そして、それはあなたの問題を解決します。 Eclipse.iniファイルは次のようになります。

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

きみの Eclipse.iniはJVMの指定に誤りがあります。まず、-vmオプションは、-vmargs行。第二に、binフォルダーの場所ではなく、Java実行可能ファイル(またはdll))を指定しないでください。 Eclipse.ini wikiページ を参照してください=詳細について(およびそこに書かれた詳細に注意を払う)。

ところで、Eclipse.iniあなたのやり方は?その誤報を修正することを期待して、ソースを知りたいです。

1
E-Riz

Eclipse.iniにこれを追加するとうまくいきました

--add-modules=Java.se.ee   
-XX:+IgnoreUnrecognizedVMOptions 

同じ問題がありました。 NoClassDefFoundErrorは、Java 9 JDKでプロジェクトをビルド/コンパイルすることを選択すると表示されます。EclipseはルートJDKフォルダーで必要なjarファイルを見つけることができないため、完全に起動できません。 Java 9マーケットプレイスからプラグインをサポートすると、Eclipseを起動できるかもしれませんが、それでも多くのエラーが表示され、単一のプロジェクトをコンパイルできなくなります。 )は、「プロジェクト設定」の下の「インストールされたJRE」でJava 9 JREに切り替えます。これにより、すべてが修正されました。

here から取得した、詳細な手順については記事全体を読むことをお勧めします。

0
filip_j

この問題は、マシンにJavaの異なるバージョンがあるために発生することがあります。正しいバージョンで.iniファイルを更新するためにこの問題を解決しました。

  • 起動
    plugins/org.Eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
  • vm
    C:\ Program Files\Java\jdk1.8.0_202\bin\javaw.exe
  • vmargs
  • Dosgi.requiredJavaVersion = 1.8
  • Xmx2G
  • Xms200m
  • XX:MaxPermSize = 512m
0
Developersh