【问题标题】:How to debug Java SE 6 using Eclipse 2022-12?如何使用 Eclipse 2022-12 调试 Java SE 6?
【发布时间】:2023-02-14 05:43:05
【问题描述】:

我无法使用 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,谢谢。

【问题讨论】:

  • 您是否将 Eclipse 配置为在 Java 6 下运行?因为你不应该那样做。相反,将 Java 6 添加为 Java 安装:Window -> Preferences -> Java -> Installed JREs。然后,您可以配置您的项目以使用此 Java 6 安装;如果您使用 Maven 并在那里配置 Java 版本,Eclipse 应该会自动选择该版本。
  • 不,正如 Eclipse JDT 开发人员在上述问题中所说:"The solution is to use older Eclipse to debug such old JVM."。请不要在 Stack Overflow 上询问已知问题。更好地支持 Eclipse JDT 来解决这个问题。

标签: java eclipse debugging eclipse-jdt


【解决方案1】:

长话短说

  • 降级您的 Eclipse(我们使用的是 2022-03)
  • 之后再次检查 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 上。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-28
    • 2013-11-03
    • 2023-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多