【问题标题】:Eclipse: export a Runnable JAR file to be executed on an older JREEclipse:导出一个 Runnable JAR 文件以在较旧的 JRE 上执行
【发布时间】:2013-05-19 18:49:36
【问题描述】:

从 Eclipse 中导出 Runnable JAR 文件是迄今为止从另一台机器上的命令行启动 Eclipse 项目的最快方法。 See this answer.

一个问题是,如果您要运行的机器上安装的 JRE 比 Eclipse 使用的 JDK 旧,您会收到此错误:

java.lang.UnsupportedClassVersionError: test_hello_world : Unsupported major.minor version 51.0

我知道在 Eclipse 上我可以构建具有较低合规级别的项目(例如,1.6 而不是 1.7),但这似乎不会影响导出的 JAR 文件。

知道如何导出 Runnable JAR 文件以在较旧的 JRE 上执行吗?

【问题讨论】:

    标签: java eclipse executable-jar


    【解决方案1】:

    这个过程似乎对我有用(我用 Java 1.2 和 Eclipse Juno 测试过):

    • 创建一个新项目。
    • 将执行环境设置为 J2SE-1.2。
    • 创建一个主类,将一行打印到 System.out。
    • 运行项目。
    • 导出可运行的 jar。
    • 在 JRE 1.2 中运行 jar。

    【讨论】:

      【解决方案2】:

      通过使用Maven,您可以指定任何版本的JRE。结果,您将获得构建到指定版本的 JRE 的 jar 文件。例如:

      <plugins>
                  <plugin>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <version>2.3.2</version>
                      <configuration>
                          <source>1.6</source>
                          <target>1.6</target>
                      </configuration>
                  </plugin>
      </plugins>
      

      【讨论】:

      • 我想这涉及到安装 Maven,并花费几个小时来解决常见的配置问题...由于导出 JAR 文件要简单得多,我对使用该解决方案更感兴趣,如果它是可能。
      【解决方案3】:

      更改合规级别应该会起作用。您必须执行项目的重建。当你导出一个 Jar eclipse 时不要编译你的项目只是为了打包它,它使用已经编译的文件。

      【讨论】:

      • 它对我不起作用。更改合规性级别时,Eclipse 会自动执行重建。独立于我选择的级别,导出的 JAR 文件似乎总是相同的(完全相同的字节数)。
      【解决方案4】:

      在 Eclipse 中更改“Java 编译器”设置。 将编译器合规级别设为 1.6。

      How can I build a jar for a previous Java version?

      然后导出“Runnable Jar”。它会工作的!

      【讨论】:

      • 您阅读我的问题了吗? “我知道在 Eclipse 上我可以构建具有较低合规级别的项目(例如,1.6 而不是 1.7),但这似乎不会影响导出的 JAR 文件。”
      • 是的,我仔细检查了您的问题。我今天也面临同样的问题。然后更改编译器合规级别对我有用。由于导出类文件以制作 jar 不会再次编译源代码。
      • 好的,感谢您的反馈。如果我再次遇到类似问题,我会考虑的。
      • 是的,我仔细检查了您的问题。我今天也面临同样的问题。然后更改编译器合规级别对我有用。由于导出类文件以制作 jar 不会再次编译源代码。我建议一旦你的 jar 被创建,打开你的 jar 并确保类文件是用你需要的 java 版本创建的。
      【解决方案5】:

      我更改了合规级别,然后还必须执行以下操作:

      • 右键单击每个项目并打开属性->Java 构建路径->库
      • 删除不需要的 JDK,在我的例子中是 JDK 8
      • 添加库 -> JRE 系统库 -> 选择你想要的版本,在我的例子中是 7
      • Java Complier -> 将合规级别设置为您想要的级别,在我的例子中为 7
      • 点击确定,根据需要重复。

      【讨论】:

        猜你喜欢
        • 2018-01-25
        • 1970-01-01
        • 2014-08-05
        • 2015-02-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-19
        • 2014-11-15
        • 2017-04-28
        相关资源
        最近更新 更多