【问题标题】:Not able to change major version of runnable jar file in eclipse无法在 Eclipse 中更改可运行 jar 文件的主要版本
【发布时间】:2023-03-18 10:24:01
【问题描述】:

我正在运行 Eclipse Luna Service Release 2 (4.4.2)。对于 java 项目,对于可运行 jar 文件中的类,我无法将主要版本从 52(java 8) 降级到 50(java 6)。当我在 Eclipse 中运行 java 程序时,它正在运行,但是当我创建 jar 文件时,它显示错误 Unsupported major.minor version 52.0。我的系统上没有安装 java 7 和 java 8。

【问题讨论】:

    标签: java eclipse java-8 jar compiler-errors


    【解决方案1】:

    无法在 Eclipse 中更改可运行 jar 文件的主要(类文件)版本。

    正确。你不能那样做。

    版本号不是 JAR 文件的版本号。它是用于表示该 JAR 中的类的类文件 format 的版本号。 (从技术上讲,JAR 中的不同类文件可能有不同的类文件版本号。)

    您真正需要的是从指定不同编译器版本号的源代码重新编译代码。这可以使用项目设置在 Eclipse 中完成,或者(使用 Maven)在 POM 文件中完成。但请注意,如果 Eclipse 可以访问目标 Java 版本的 JDK/JRE,您将获得最佳结果。

    (我还没有检查 Eclipse Luna 编译器是否仍然能够为 Java 6 生成代码。我隐约记得某些 Java 编译器正在删除此选项。支持多个旧平台的代码生成妨碍了进度。所以您可能必须使用旧版本的 Eclipse ...)


    话虽如此,您不应该使用 Java 7 或更早版本。他们已经报废了很多年。你错过了多年的安全补丁和其他好东西。建议尽快将您的构建和执行平台升级到 Java 8 或 Java 11 ...。

    我的系统上没有安装 java 1.7 和 1.8。

    是的...修复那个。安装 Java 1.8 == Java 8。

    【讨论】:

    • 谢谢,但我重新编译了代码并再次导出可运行的 jar 文件,但结果仍然相同。实际上我只需要 java 6 编译类。我的系统中没有安装 java 7 和 java 8,那么如何编译版本 52 的 java 类文件。
    • Eclipse 使用内部编译器;见“how do I get eclipse to use a different compiler version for Java?”。
    • 正确。并且该编译器能够为许多“目标”类文件版本生成字节码。所以,你需要配置 Eclipse 来做你想做的事;看我的答案。或者,使用 maven、ant、gradle 等构建工具从命令行运行编译,并适当地设置构建指令。
    猜你喜欢
    • 2015-10-16
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多