刚刚开始玩jdk9 - 并且刚刚开始时卡住了:
此时,我可以使用jre/jdk(在eclipse.ini中使用/ out vm参数)在我的默认java(8u60)上运行eclipse并使用java 9支持.
下一步,我想用java 9运行eclipse:将vm-arg添加到eclipse.ini,现在eclipse使用冗长的错误日志中止其启动(ini和log都显示在下面).
哪里出了问题?
我的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
Run Code Online (Sandbox Code Playgroud)
错误日志的顶部(它> 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 …Run Code Online (Sandbox Code Playgroud) 我创建了一个非常基本的maven项目:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.jotschi</groupId>
<artifactId>test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>9</source>
<target>9</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
它只有一个de.jotschi.App主类和一个/test/src/main/java/module-info.java定义和导出模块的文件:
module test {
exports de.jotschi;
}
Run Code Online (Sandbox Code Playgroud)
如果我在eclipse中运行App类,我会看到以下错误:
初始化引导层java.lang.module.FindException期间发生错误:找不到模块测试
Eclipse:Oxygen.1版本(4.7.1)+ Java 9支持氧气
Java:9 + 181
我安装了Spring Tool Suite(版本3.9.0).它以前工作得很好.安装JDK 9后,我无法启动Spring Tool Suite.
我可以在错误日志中看到以下内容:
java.lang.NoClassDefFoundError:org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:450)中的javax/annotation/PreDestroy atg.eclipse.e4.core.internal.di.Requestor.disposed (Requestor.java:156)org.eclipse.e4.core.internal.contexts.ContextObjectSupplier $ ContextInjectionListener.update(ContextObjectSupplier.java:78)at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt) .java:111)org.eclipse.e4.core.internal.contexts.TrackableComputationExt.handleInvalid(TrackableComputationExt.java:74)at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:178 )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) )在org.eclipse.osgi.framework.eventmgr.EventM的org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908)anger.dispatchEvent(EventManager.java:230)org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java: 213)位于org.eclipse.osgi的org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120)org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) .internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168)atg.eclipse.osgi.container.Module.publishEvent(Module.java:476)org.eclipse.osgi.container.Module.doStop(Module.java) :634)org.eclipse.osgi.container.Module.stop(Module.java:498)org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:202)org.eclipse.osgi.internal.在java.base/java中的framework.EquinoxBundle $ SystemBundle $ EquinoxSystemModule $ 1.run(EquinoxBundle.java:165).lang.Thread.run(Thread.java:844)引起:java.lang.ClassNotFoundException:org.eclipse中的org.eclipse.e4.core.di_1.6.100.v20170421-1418找不到javax.annotation.PreDestroy. osg.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433)位于org.eclipse.osgi.BongleLoader.findClass(BundleLoader.java:395)的org.eclipse.osgi.internal.loader.BundleLoader. findClass(BundleLoader.java:387)位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)的org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
这个问题真的是因为JDK 9吗?请指出我正确的方向来解决问题.
谢谢.