2017-09-25 9 views
-1

Mac OSに最新のJava 9をインストールしようとしました。最初の瞬間にはJava 9を使用してワークスペースを起動するとSTS 3.9.0がクラッシュする

が、それはすべてOKに見えたが、STSを再起動した後、このエラーが起こるを開始しています:

!SESSION 2017-09-25 14:20:42.193 ----------------------------------------------- 
eclipse.buildId=3.9.0.201707061823-RELEASE-e47 
java.version=9 
java.vendor=Oracle Corporation 
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=it_IT 
Framework arguments: -product org.springsource.sts.ide -keyring /Users/mypc/.eclipse_keyring 
Command-line arguments: -os macosx -ws cocoa -arch x86_64 -product org.springsource.sts.ide -keyring /Users/mypc/.eclipse_keyring 

!ENTRY org.eclipse.osgi 4 0 2017-09-25 14:20:54.198 
!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(NativeMethodAccessorImpl.java:62) 
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.base/java.lang.reflect.Method.invoke(Method.java:564) 
    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) 
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) 
    ... 22 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(ClassLoader.java:496) 
    ... 24 more 

!ENTRY org.eclipse.e4.ui.workbench 4 0 2017-09-25 14:20:54.207 
!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(Thread.java:844) 
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(ClassLoader.java:496) 
    ... 21 more 

エラー後も削除/再インストールSTSを持続します。

JDK_1.8への$ JAVA_HOMEポイント:

$ java -version 
java version "1.8.0_121" 
Java(TM) SE Runtime Environment (build 1.8.0_121-b13) 
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) 

が、ログには、EclipseはまだJavaの9を使用して起動されます。

!SESSION 2017-09-25 14:20:42.193 ----------------------------------------------- 
eclipse.buildId=3.9.0.201707061823-RELEASE-e47 
java.version=9 
java.vendor=Oracle Corporation 

JDK 1.8をリセットする方法は?

ありがとうございました

+0

Java 9でEclipse/STSを実行する場合は[こちら](https://stackoverflow.com/q/46369792/2670892)を参照 –

+0

可能な複製https://stackoverflow.com/questions/46369792/why-wont-日食酸素開始はじめての – nullpointer

+0

これはおそらく重複していますが、提示された回答は私には役に立たなかった –

答えて

0

私は解決できませんでしたが、これは容認できる解決策ではありません。

私は、次のコマンドを実行し、システムからJDK 9を削除することを余儀なくされてきた:

sudo rm -fr /Library/Java/JavaVirtualMachines/jdk-9.jdk/ 
sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin 
sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefPane 

thisリンクから)は、Java 9とSTSを実行している間

0

同じエラーが私のために発生しました

以下の編集はSTS.​​iniファイルで行われ、以下の引数がファイルに追加されました。

--add-modules=java.se.ee 

この問題を解決しました。

この問題を修正した後、STSが動作します。しかし、それでもJava 9を使ってソリューションを構築することができませんでした。したがって、正式版がSTSによってリリースされるまで、Java 8を使用する方が良いです。

関連する問題