升级后 Eclipse“无法实例化类 JavaSourceLookupDirector,在分支目标 53 处期望堆栈图帧”

Posted

技术标签:

【中文标题】升级后 Eclipse“无法实例化类 JavaSourceLookupDirector,在分支目标 53 处期望堆栈图帧”【英文标题】:Eclipse "Unable to instantiate class JavaSourceLookupDirector, Expecting stackmap frame at branch target 53" after upgrade 【发布时间】:2021-04-16 22:50:21 【问题描述】:

刚刚更新了 eclipse,现在我不能再运行我的 spring 应用程序了。

版本: 面向 Java 开发人员的 Eclipse IDE(包括孵化组件) 版本:2020-12 (4.18.0) 版本号:20201210-1552

错误信息:

插件“org.eclipse.jdt.launching”无法实例化类“org.eclipse.jdt.internal.launching.JavaSourceLookupDirector”。 期望分支目标 53 处的堆栈图帧 异常详情: 地点: org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.dispose()V @29:转到 原因: 此位置的预期堆栈图帧。 字节码: 0000000: b801 f9b6 01fa 4c2b 2ab9 022c 0200 2b2a 0000010: b902 2e02 002a b401 d6b6 01ef 4ea7 0018 0000020:2db9 021b 0100 c001 004d 2c2a a500 092c 0000030: b902 3a01 002d b902 1a01 009a ffe5 2ab4 0000040: 01d6 b601 eb2a b401 dbc6 0026 2ab4 01db 0000050: 593a 05be 360​​4 033e a700 1119 051d 324d 0000060: 2cb9 0234 0100 8403 011d 1504 a1ff ef2a 0000070: 01b5 01db 2a01 b501 d7b1

Installed Jdk is: AdoptopenJDK 11.0.9.101-hotspot(在Installed JRE下也选为默认)

更新后我在启动 eclipse 时已经遇到问题,所以我在 eclipse.ini 中设置:

-vm C:\Program Files\AdoptOpenJDK\jdk-11.0.9.101-hotspot\bin

该应用程序是一个普通的 java spring 应用程序,“gradlew bootRun”运行良好。

老实说,这种晦涩难懂的错误怎么会发生?谁能帮忙解决这个问题?

【问题讨论】:

【参考方案1】:

我在 eclipse version Version: 2020-12 (4.18.0) 中遇到了类似的问题,我遇到了错误

插件“org.eclipse.jdt.launching”无法实例化类 org.eclipse.jdt.internal.launching.JavaSourceLookupDirector”。在分支目标 53 处期望堆栈图框架

我正在使用 java 运行 spring boot 应用程序,但发现还安装了我的项目不需要的 kotlin。

为了解决这个问题,我卸载了 kotlin 开发工具并重新启动了运行良好的 eclipse

您可以通过帮助 > 关于 Eclipse IDE > 安装详细信息查看所有已安装的软件。如果您只保留必需的软件而卸载所有不需要的软件,这可能会有所帮助。

【讨论】:

更新到 2021-03 后遇到同样的问题,卸载 kotlin 为我解决了这个问题。 然后他们需要更新 kotlin 开发工具以确保它不会破坏东西 这很可悲……为什么 Eclipse 插件在 Eclipse 更新后仍然如此糟糕?【参考方案2】:

从以下位置卸载 Kotlin About Eclipse IDE> Installation Details > Kotlin > Uninstall 解决了我的问题。

【讨论】:

【参考方案3】:

我遇到了完全相同的问题,但我需要导入并启动 Kotlin 项目,因此无法卸载 Kotlin 插件。

我的设置:Eclipse 2021-03 + Kotlin 插件 0.8.21。

安装最新的 AspectJ 开发工具(今天是 2.2.4)对我有用,试一试。

【讨论】:

谢谢! Eclipse 2021-03 + Kotlin 插件不起作用。在此之前,我使用 Eclipse 2020-09 + Kotlin Plugin 并且没有任何问题。最后,在通过 Eclipse 2021-03 和 Kotlin 插件安装 AspectJ 之后,它现在可以工作了。那么 Kotlin 插件中有什么过时的呢?和其他人一样,我必须有 Kotlin 插件。【参考方案4】:

我在 MacOS Big Sur 上多次全新安装 Eclipse 2020.12 时遇到了同样的问题。

在我的情况下,错误似乎是由“流氓”插件引起的。

首先我会安装带有新工作区的 Eclipse 2020.12,进行所有配置更改(安装的 JRE、类路径变量、链接资源等)、安装插件、导入现有项目,然后尝试启动。我反复收到上面的错误。

使用 -clean 开关从命令行启动 eclipse 没有帮助。

最后我做了一个全新的安装,首先做了一个简单的 HelloWorld java 项目。 这启动没有问题。然后我逐渐继续配置和设置 Eclipse,每一步都重新启动 HelloWorld。这个想法是找出哪个安装/配置步骤会停止启动工作。

    使用新工作区进行全新安装。 更改和配置 NOTHING。 制作并启动一个 HellowWorld 项目。 进行一项 Eclipse 配置/设置更改。 启动 HelloWold。 重复上面的 4) 和 5),直到一切都设置好,或者出现上面的错误。

在我的情况下,从 Eclipse Marketplace 安装 Kotlin 插件 v0.8.21 会导致上述错误。在我安装 Kotlin 之前启动工作。删除 Kotlin 插件后再次启动工作。如果我重新安装 Kotlin,它们会再次崩溃。

在您的情况下,它可能不是 Kotlin,也可能不是另一个插件,或者其他东西:但逐步安装/配置过程可以帮助您找到破坏 Eclipse 的原因。即

【讨论】:

【参考方案5】:

从市场上安装 Kotlin 插件并尝试运行简短的 java 脚本后,我遇到了同样的问题。

卸载插件+重启对我有用。

【讨论】:

【参考方案6】:

安装了 "Kotlin" 插件的情况相同。尝试删除插件,一切顺利。

如果您是 Mac 用户

Eclipse -> 关于 Eclipse -> 安装详细信息 -> 选择 (Kotlin) 并卸载

【讨论】:

【参考方案7】:

升级到 Eclipse 2020.12 后我遇到了一个非常相似的问题:

Plug-in "org.eclipse.jdt.launching" was unable to instantiate class
"org.eclipse.jdt.internal.launching.JavaSourceLookupDirector".
Expecting a stackmap frame at branch target 50

我发现修复它的唯一方法是下载并重新安装 Eclipse。

【讨论】:

以上是关于升级后 Eclipse“无法实例化类 JavaSourceLookupDirector,在分支目标 53 处期望堆栈图帧”的主要内容,如果未能解决你的问题,请参考以下文章

升级到 Ubuntu 13.10 后 Eclipse 菜单不显示

升级硬盘驱动器后重新安装Eclipse的问题

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

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

解决方案:升级JDK9后eclipse无法启动

升级后 Eclipse“无法实例化类 JavaSourceLookupDirector,在分支目标 53 处期望堆栈图帧”