如何使用 Eclipse 2022-12 调试 Java SE 6?

问题描述 投票:0回答:1

我无法使用 Eclipse 2022-12 调试 Java SE 6,它会抛出以下异常:

java.lang.UnsupportedClassVersionError: org/eclipse/jdt/launching/internal/javaagent/Premain : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(Unknown Source)
    at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(Unknown Source)
FATAL ERROR in native method: processing of -javaagent failed
Exception in thread "main" 

但是,我可以毫无问题地运行这个项目(Java SE 6)。我也可以正常运行和调试另一个 Java SE 7。

与此处发布的问题相同:https://www.eclipse.org/forums/index.php/mv/msg/1112218/1856754/

自此更改以来可能会发生:https://github.com/eclipse-jdt/eclipse.jdt.debug/issues/61

所以。有没有办法使用 eclipse 2022-12 调试 Java SE 6,谢谢。

java eclipse debugging eclipse-jdt
1个回答
1
投票

TL;博士

  • 将 Eclipse 降级至 2022 年 9 月
  • 之后仔细检查 Java 版本

说来话长

今天一位同事遇到了这个问题,经过一番修改后我们已经可以使用了。他的 Eclipse 也停在了幽灵断点处。他从未参与过该项目,我们已经清理了所有内容,但即使如此,它也会在断点处停止并因提到的错误而中断。

阅读此问题中的链接后,现在我明白为什么这有效,但第二项非常出乎意料:

  • 我在 2022-03 年它正常工作,所以我们也将他的 Eclipse 降级到 2022-03 年。正如您所指出的,他们似乎做出了更改,在 Java 1.6 的调试模式下创建了此错误。
  • 之后,我们仔细检查了各处的 Java 版本,发现 Eclipse 上显示的 Java 1.6 实际上是 Java 11(写法类似于“JavaSE-1.6 (jdk 11)”),所以我们强制它从新的 Java 1.6 位置使用。我认为 Eclipse 混淆了一些东西,因为我认为它在 Java 11 上运行。

之后,调试又开始工作了。

© www.soinside.com 2019 - 2024. All rights reserved.