【发布时间】:2018-10-22 08:50:58
【问题描述】:
好吧,今天我将 Java 10 添加到我的 Windows 10 机器上,它破坏了 eclipse Neon。我的 Neon 副本不适用于 Java 10,因此我明确要求它在 eclipse.ini 中使用 Java 8。我究竟做错了什么?我难住了。 Neon 一直尝试使用 Java 10 启动,无论我的 -vm 设置如何。
eclipse.ini
-startup
plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.401.v20161122-1740
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm
C:\Program Files\Java\jdk1.8.0_121\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.8
-XX:+UseG1GC
-XX:+UseStringDeduplication
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m
Neon 尝试使用 Java 10 启动失败后的日志输出:
!会话 2018-05-11 17:25:40.179 ----------------------------------------------------------- eclipse.buildId =4.6.3.M20170301-0400 java.version=10.0.1 java.vendor=Oracle Corporation BootLoader 常量:OS=win32, ARCH=x86_64, WS=win32, NL=en_US 命令行参数:-os win32 -ws win32 -arch x86_64
!ENTRY org.eclipse.osgi 4 0 2018-05-11 17:25:42.747 !MESSAGE 应用程序错误!堆栈 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)
如果我将 JAVA_HOME 和路径上的 java bin 更改为 Java8 目录,Neon 将运行。所以它似乎是通过 ini 文件读取 env vars,这似乎倒退了我对 eclipse 的 vm 搜索过程的理解。
【问题讨论】: