【问题标题】:Multi-platform application launcher多平台应用程序启动器
【发布时间】:2012-09-07 15:15:13
【问题描述】:

是否有任何应用程序可以创建 Java 应用程序的本机应用程序启动器?作为“本机”术语,我的意思是“看起来像正常的、依赖于平台的应用程序,它只启动 java -jar foobar.jar,如果没有安装 JVM 则显示错误”。我听说过 Launch4j,但它只适用于 Windows。我想要多平台(Win+Lin+Mac)解决方案。而且我不是在谈论 shell 脚本。我想要普通的可执行文件。

顺便说一句,Eclipse 看起来它已经得到了我想要的东西。

问候。

【问题讨论】:

  • 对于超过 200MB 的应用程序? :P 而且 .jnlp 看起来不像原生应用程序。
  • “对于超过 200MB 的应用程序” 好吧,它只下载一次 - 无论您使用什么启动器,也必须下载它。 “jnlp 看起来不像原生应用” 启动过程不像。
  • @m4tx 应用程序将如何。交付给最终用户? CD/DVD、U 盘、Wi-Fi、IPoAC?
  • @AndrewThompson +1 我不知道 IPoAC - 一定会在我的下一个项目中尝试一下!!!
  • @assylias 我不想让用户在启动我的应用程序时需要互联网连接。我最近在启动 SwingX 演示(即 .jnlp)时没有(临时)互联网连接;虽然我之前下载了它,但我无法启动它。真的很烦。

标签: java native launcher multiplatform


【解决方案1】:

如果您使用 maven,那么为所有平台创建 Native 应用程序将非常容易,我们在 windows(.exe) 中使用 launch4j,对于 debian(.deb) 我们使用 jdeb,对于 Mac OSX(.app 和.dmg)我们使用 osxappbundle。

【讨论】:

  • 哦,很酷,但是...通用(不仅仅是 debian)Linux 启动器呢? :)
  • 对于非 debian .... 你可以使用 rpm-maven-plugin 创建 rpm 包...
  • 嗯... RPM 仍然不是通用发射器;p 作为“通用”,我的意思是普通的 ELF 发射器。但是 Maven 看起来对我来说真的很好......
  • 您可以将 Redline RPM 库与 Ant 或 Maven 一起使用来创建 RPM。也请查看 LibGDX Packr(对于本机启动器)。
【解决方案2】:

有像launch4j 这样的工具可以做到这一点。

您可以将它与izPack 一起使用,以提供本机安装程序和启动程序。有关更多详细信息,请参阅this

【讨论】:

  • 我说我不想要launch4j,因为它只适用于Windows :)
  • @m4tx 你说的是Java4j。 Launch4j 也适用于 linux 和 MacOS。
  • "Launch4j 将 jar 包装在 Windows 原生可执行文件中,并允许像常规 Windows 程序一样运行它们。可以在 Windows、Linux、Mac OS X 和 Solaris 上包装应用程序!"
  • @Dan 据我所知,“可以在 Windows、Linux、Mac OS X 和 Solaris 上打包应用程序!”意味着我只能在 Windows、Linux、OS X 或 Solaris 上为 Windows创建启动器 :)
  • @Baz,对不起。我的意思是 Launch4j,而不是 Java4j。我已经修好了。
【解决方案3】:

我使用LibGDX Packr,但它使用的是您与应用程序一起打包的 JVM,而不是安装在操作系统上的 JVM。因为我更喜欢提供真正的 GNU Linux 软件包,所以我使用 JDebRedline RPM。我必须找到一个解决方案来为 Windows 创建一个 MSI 包。

这些工具是跨平台的,这意味着您不必在 Mac OS X 下创建 .app 文件,也不必在 Windows 下使用本机 Windows 启动器创建压缩文件,您不必在 GNU Linux 下创建 GNU Linux 软件包。

我使用 Ant 作为构建工具,但你可以用 Maven 做同样的事情,JDebRedline RPM 都支持它,为 LibGDX Packr 编写 Ant 任务非常容易。当我成功正确使用JDebRedline RPM 时,我仍然犹豫是否将我的高级部署工具放入单独的库中。我想使用同质语法以允许开发人员使用相同的参数来创建所有本机包。此外,我的代码为您创建了 .icns 文件,当您不想依赖原生 Mac OS X 工具或任何外部应用程序时,它非常有用,它基于我的 Apache Commons Imaging 补丁。

P.S:几个月前我把自己的工具(JNDT)放到了一个单独的 Ant 脚本中,它的文档是here

【讨论】:

    【解决方案4】:

    我发现install4j 对于多平台应用程序绑定很有用。它易于使用并具有漂亮的图形界面。

    它支持Windows + Linux + MacOSX + Unix
    它还可以绑定 JRE,这样即使用户没有安装任何 JRE 也可以运行它。

    【讨论】:

    • 它对 Linux 和 Unix 的支持很差,许多打包选项根本不起作用(多架构,发布,...),它有很多限制,它不是免费的,而且它提供的内容并不多于竞争解决方案。此外,许多工具允许捆绑 JRE,而不仅仅是 install4j。
    猜你喜欢
    • 2015-01-13
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    相关资源
    最近更新 更多