【问题标题】:Converting Java SWT app to .exe launch4 error [duplicate]将 Java SWT 应用程序转换为 .exe launch4 错误 [重复]
【发布时间】:2021-12-22 16:44:04
【问题描述】:

我在 Windows 10(64 位)笔记本电脑上使用 Eclipse 构建了一个 Java SWT 应用程序。我正在尝试将其转换为 .exe 文件,以便任何人都可以运行该应用程序,无论是否安装了 java。

我已使用 Launch4J 将可运行的 .jar 文件转换为 .exe 文件,并且可以在笔记本电脑上成功运行它。

但是,当我尝试在任何其他笔记本电脑上运行它时,.exe 文件在双击时无法打开/不执行任何操作。

当我尝试通过命令行在不同的笔记本电脑上运行原始 .jar 文件时,出现以下错误:

_ 这里的其他帖子说在我所做的构建路径中包含 JRE 和库,但它没有解决问题。

有谁知道如何解决这个问题并允许我的应用程序运行?

【问题讨论】:

  • 正如错误所说,您需要为旧版本的 Java 编译代码,或者您需要确保其他 PC 具有正确的版本或 java(或更新)以匹配您的代码是针对编译的。根据应用程序的不同,我们中的许多人仍然使用旧版本的 Java 8 进行编译以确保兼容性。对于 exe 文件,一种解决方案是 Launch4J 可以选择将 jre/JVM 打包到您的 EXE 文件中,这意味着您可以保证正在使用的版本,尽管它创建了一个更大的 exe,因为它现在包含所有JVM/jre 文件。
  • 注意:Java 版本 52=Java 8,而 Java 版本 55=Java 11。看起来您的 eclipse 小部件库需要更新版本,因此您需要在该 PC 上安装 Java 11运行您的 jar(或将其打包到 exe 中),或者您需要找到已为 java 8 编译的旧版本的 eclipse 库,您可以在项目中使用它。
  • @sorifiend 通过添加必要的 jre 库,我能够成功运行我的 .exe 文件,谢谢!如果您将此添加为答案,我将接受它作为解决方案。
  • 很高兴听到您解决了这个问题。让我们把这个问题作为另一个How to bundle a JRE with Launch4j? 的副本来结束,它有一些很好的答案。

标签: java jar swt exe launch4j


【解决方案1】:

该消息表示 SWT 代码已使用 Java 11(类文件版本 55)编译,但您正尝试使用 Java 8(类文件版本 52)运行它。

您不能这样做,您至少需要 Java 11 才能运行当前版本的 SWT(或任何 Eclipse 代码)。

如果您必须使用 Java 8 运行,则适用于 Eclipse 2020-06 (4.16) 的 SWT 是最后一个为 Java 8 编译的。存档站点 here 具有该版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-20
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多