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

[2] https://www.greenhtml.com/archives/org-eclipse-e4-core-di-InjectionException-java-lang-NoClassDefFoundError-javax-annotation-PostConstruct.html

jdk升级后Eclipse无法启动问题的更多相关文章

  1. MacOS Big Sur11.0升级后Eclipse启动报错

    本次升级MacOS Big Sur11.0.1之后,开启Eclipse时报空指针,打开页面空白,之后卸掉, 再次安装时提示加载不到libserver.dylib 或 Could not create ...

  2. 升级JDK9后eclipse无法启动的解决方法

    解决方法-打开: D:\Program Files\eclipse\eclipse.ini 在文件末尾添加一行: --add-modules=ALL-SYSTEM 再次启动eclipse即可 感谢ht ...

  3. 删除maven项目后eclipse无法启动

    An internal error occurred during: "reload maven project". java.lang.NullPointerExceptio   ...

  4. 关于kali2.0rolling中metasploit升级后无法启动问题的解决总结

    最近在学习metasploit的使用,文中提到可以使用msfupdate命令来对metasploit的payload.exploit等进行升级,我就试了一下,没想到升级过程并不麻烦,但升级后却出现了无 ...

  5. eclipse配置虚拟路径后,每次启动tomcat都会虚拟路径失效的问题解决

    由于,eclipse启动tomcat部署项目并不是直接把项目放到tomcat的webapps目录下的,而是从我们在eclipse配置的外部tomcat中取出二进制文件,在eclipse内部插件中作为t ...

  6. 升级Ubuntu 到14.04 64位 后eclipse出现闪退现象

    升级Ubuntu 到14.04 64位 后eclipse出现闪退现象,搜了各种方法,最后解决问题 解决方法: 在所装的eclipse的目录下有个configuration/config.ini 文件 ...

  7. docker升级后启动报错400 Client Error: Bad Request ("Unknown runtime specified docker-runc")

    宝塔面板docker升级后启动容器时报错400 Client Error: Bad Request ("Unknown runtime specified docker-runc" ...

  8. spring boot 在eclipse里启动正常,但打包后启动不起来

    现象描述: spring boot 在eclipse里启动正常,但打包后启动不起来. 错误日志如下: D:\Project>java -jar MKKY_CMS.jar . ____ _ __ ...

  9. eclipse中启动tomcat后, 无法访问localhost:8080

    问题: 今天老师讲了Servlet路径问题, 做了个测试在eclipse中启动tomcat后,在浏览器地址栏输入 http://localhost8080无法访问, 提示404错误, 正常情况是可以访 ...

随机推荐

  1. 关于互信息(Mutual Information),我有些话要说

    两个随机变量的独立性表示两个变量X与Y是否有关系(贝叶斯可证),但是关系的强弱(mutual dependence)是无法表示的,为此我们引入了互信息. 其中 p(x,y) 是 X 和 Y 的联合概率 ...

  2. python IO非阻塞模型

    server端 import socket sk = socket.socket() sk.bind(('127.0.0.1', 8010)) sk.setblocking(False) # sk.l ...

  3. Django2 外键遇到的坑

    # 出版社 class Publisher(models.Model): # 自增.主键 id id = models.AutoField(primary_key=True) # varchar(32 ...

  4. 动态规划 之 区间DP练习

    前言 \(Loj\) 放上了那么多<信息学奥赛一本通>上的题(虽然我并没有这本书),我要给它点一个大大的赞 ^_^ 以后分类刷题不愁啦! 正文 那就一道道说吧. 石子合并 将 \(n\) ...

  5. Knative 简介

    原文地址:https://yq.aliyun.com/articles/658800

  6. 管理2000+Docker镜像,Kolla是如何做到的

    根据 DockerHub 上的数据,整个 Kolla 项目管理的 镜像有 2000 多个,这么多的镜像,是怎么定义,又是如何构建的呢? 简介 我们一直在说的 Kolla,通常情况下泛指,包括了 Kol ...

  7. test api formdata

  8. 客户端 jQuery 跨端口 调用 node 服务端

    一句话 很顶用 response.setHeader('Access-Control-Allow-Origin', 'http://127.0.0.1:8020'); 说 响应的头文件里设置 一个 h ...

  9. 史上最详细的二叉树、B树,看不懂怨我

    今天我们要说的红黑树就是就是一棵非严格均衡的二叉树,均衡二叉树又是在二叉搜索树的基础上增加了自动维持平衡的性质,插入.搜索.删除的效率都比较高.红黑树也是实现 TreeMap 存储结构的基石. 1.二 ...

  10. mysql--->innodb引擎什么时候表锁什么时候行锁?

    mysql innodb引擎什么时候表锁什么时候行锁? InnoDB基于索引的行锁 InnoDB行锁是通过索引上的索引项来实现的,这一点MySQL与Oracle不同,后者是通过在数据中对相应数据行加锁 ...