jdk升级后Eclipse无法启动问题
overview:
今日安装jdk11,设置好环境变量后,eclipse无法运行,由于项目依赖原因,不想更新eclipse的版本。
我的jdk是1.8,在将环境变量设回1.8后依然无法运行。在多次尝试解决方案后,发现以下可行的方法
Method:
下面是workspace中的log exception info
!SESSION 2020-02-27 20:11:58.538 ----------------------------------------------- eclipse.buildId=4.7.3.M20180330-0640 java.version=11.0.2 java.vendor=Oracle Corporation BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=zh_CN_#Hans Framework arguments: -product org.eclipse.epp.package.jee.product -keyring /Users/knightsong/.eclipse_keyring Command-line arguments: -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.jee.product -keyring /Users/knightsong/.eclipse_keyring !ENTRY org.eclipse.osgi 4 0 2020-02-27 20:12:05.029 !MESSAGE Application error !STACK 1 org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct
java.lang.NoClassDefFoundError: javax/annotation/PreDestroy
尝试设置jdk1.8的环境变量后,eclipse依然在使用jdk11,因此在eclipse安装路径下的配置文件eclipse.ini中强行配置java虚拟机绝对路径,即
-vm
/Library/Java/JavaVirtualMachines/jdk1.8.jdk/Contents/Home/bin
将此配置添加在虚拟机参数前即可。
Discuss:
在尝试过程中发现, source .bash_profile 后直接执行命令 open -n Eclipse.app 也可以正常运行,考虑与强制配置java虚拟机原理相同。
其次亲测[1]中在eclipse.ini末尾添加 –add-modules=ALL-SYSTEM 无效。
reference:
[1] https://blog.csdn.net/chszs/article/details/78178158