【问题标题】:Can we run an Java app in a system without JRE?我们可以在没有 JRE 的系统中运行 Java 应用程序吗?
【发布时间】:2011-03-02 03:32:42
【问题描述】:

我创建了一个 java 应用程序。我为我的应用程序创建了 Excecutable jar 和 Exe 文件。但它不能在没有安装计算机的系统上运行。怎么做?是否可以在 EXEcutable jar 或 Exe 文件本身中配置 JRE?有什么想法吗?

【问题讨论】:

标签: java eclipse


【解决方案1】:

我认为project : launch4j 可能对您有用。它可以将 jar 包装在可执行文件中并捆绑 JRE,使其表现得像本机应用程序。

【讨论】:

  • 它是一个独立系统的窗口应用程序。任何想法?它没有清单文件。正确的?那该怎么办?
  • 创建一个清单文件。它只是一个带有一些键值对的文本文件,很少超过半屏。你可以在这里找到更多信息:java.sun.com/developer/Books/javaprogramming/JAR/basics/…
【解决方案2】:

JSmooth 是一个 Java 可执行包装器。它为您的 java 应用程序创建本机 Windows 启动器(标准 .exe)。它使 java 部署更加流畅和用户友好,因为它能够自行找到任何已安装的 Java VM。

当没有可用的 VM 时,包装器可以自动下载并安装合适的 JVM,或者只是显示一条消息或将用户重定向到一个网站。

【讨论】:

    【解决方案3】:

    您不能将 JRE 打包到 Jar 中,但您可以将一个 JRE 打包到您的 jar 文件中,并让您的安装程序管理安装。 Sun/Oracle 允许仅出于此目的重新分发 JRE(没有 JRE 的系统)。

    【讨论】:

    • 顺便说一句,这是我希望 Sun 向 Microsoft 支付一些钱来更新 XP/Vista/7 中的 JRE 的情况之一。叹息……
    【解决方案4】:

    是的,可以从 java 应用程序创建特定于操作系统的可执行文件,关于这个主题已经有一些问题,比如这里:Embed a JRE in a Windows executable?

    Java 总是被编译成一种独立于操作系统的字节码,它只能在 Java 虚拟机中执行,就像 JRE 附带的那样。


    仅仅因为您用“eclipse”标记了您的问题并提到了一个“exe”文件……以防万一,您创建了一个 eclipse RCP 应用程序,那么有一种优雅的方法可以将该应用程序与 java 运行时环境捆绑在一起:只需在您的应用程序目录(与插件和功能文件夹相同级别)中创建一个名为“jre”的文件夹,然后将 JRE 复制到该文件夹​​。 Eclipse 导出页面中甚至可能有一个复选框,用于将应用程序与 JRE 捆绑在一起。

    【讨论】:

      【解决方案5】:

      是的,这是我已回答 here 的另一个问题的子集。一个 Java 感知安装程序,它将打包 JRE 并包含它,或者编译为“本机”(JETGCJIKVM)。我已经将最后一个用于非 GUI 应用程序,并且效果很好。

      【讨论】:

        【解决方案6】:

        您可以尝试使用 CGJ 将其编译为二进制文件。您必须在要从中捆绑应用程序的主机上安装 Cygwin 或 MinGW,但这是一个明确的解决方案,因为它将整个程序编译为本机代码。

        看看here..

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-12-12
          • 2019-10-17
          • 1970-01-01
          • 2013-11-24
          • 1970-01-01
          • 2011-05-02
          • 2021-09-07
          相关资源
          最近更新 更多