【问题标题】:Running a java program as an exe in Windows without JRE installed在未安装 JRE 的情况下在 Windows 中将 java 程序作为 exe 运行
【发布时间】:2009-08-26 05:39:09
【问题描述】:

我想在 Windows 中将 java 程序作为 exe 运行。 windows框根本不安装java...

那么,有没有其他方法可以将java程序转换为exe,从而消除对JRE的依赖?

【问题讨论】:

    标签: java windows


    【解决方案1】:

    您可以为此目的使用 Excelsior JET 编译器。

    有关这方面的更多信息,请参阅http://www.excelsiorjet.com/

    【讨论】:

      【解决方案2】:

      您可以将 JRE 与您的应用程序一起提供,并将该 JRE 用于您的应用程序。效果是一样的:应用程序将通过可执行文件(需要包装器)或脚本(批处理)文件启动,并且目标机器不需要安装 java 运行时。

      Java 不必'已安装',它只需要'存在'

      【讨论】:

      • 你可以吗?合法吗?根据我的经验,Oracle 不允许 Linux 发行版包含 JRE。我想应用程序也有类似的分发问题。
      【解决方案3】:

      要运行应用程序,您将需要运行时。事实上,当您启动应用程序时发生的第一件事就是调用操作系统以启动 JRE。你不能没有 JRE。

      [如果需要,您当然可以将 JRE 嵌入到您的应用程序中]。

      【讨论】:

      • 据我所知,你没有错,但我很好奇;为什么会这样?有几个不同的实用程序(py2exe 就是其中之一)将 Python 解释器与安装程序打包在一起。
      • 虚拟机的全部意义在于您希望从底层操作系统中抽象出应用程序。另一个例子是垃圾收集。如果没有人忽略应用程序并在对象超出范围时负责释放内存,垃圾收集就无法工作。这是由 JRE 完成的。
      • @Sesh 其他答案表明这是错误的。需要替换 JRE(这是其他答案的内容)。 JRE 没有什么神奇之处。你可以有一个备用引擎来做垃圾收集之类的事情。
      【解决方案4】:

      我使用 JSmooth 来展示我的应用程序。它还允许在其中嵌入 JRE。我只是使用了“确保至少有 Java X 可用”。

      GPL,可以作为蚂蚁任务运行。

      【讨论】:

        【解决方案5】:

        鉴于您在 Windows 中请求可执行文件 (exe),还有另一种方法:

        使用 IKVM.NET - Bytecode Compiler 将 Java 字节码转换为 .NET dll 和 exe。

        获取最新版本的 IKVM.NET here

        使用这个命令

         ikvmc -target:exe -out:foo.exe yourJarFile.jar
        

        创建您的 .NET 可执行文件。

        在此之后,您可以将您的 exe 与强制性 IKVM dll 一起使用,或者如果您更喜欢一个 exe 文件,您可以使用 ILMerge 以获得单个可执行文件:

        ILMerge.exe /target:winexe /targetplatform:"v4,C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1" /out:C:\foo\bar.exe foo.exe <IKVM dll's>.dll
        

        【讨论】:

        • 这对我来说效果很好。除了 IKVM 在 Java 的更高版本上似乎遇到了问题。我不得不更改我的目标 java 版本。此外,它似乎只能生成带有 .NET 3.5 版的二进制文件(更喜欢 .NET 2)。
        【解决方案6】:

        如果您使用的是 JDK 9 及更高版本,则可以使用jlink。它将包括所有必要的模块、头文件、安全策略文件等,并构建一个最小的运行时映像。此图像可以直接运送给客户。你可以指定你自己的启动器,什么不是。

        jlink描述:

        您可以使用jlink 工具将一组模块及其依赖项组装和优化为自定义运行时映像。

        在 oracle 文档中了解更多信息:Java Platform, Standard Edition Tools Reference

        【讨论】:

          【解决方案7】:

          GCJ 可以从 Java 源文件创建本机代码。 Here's 一个关于如何在 Windows 中构建它的教程。

          【讨论】:

          • 你能说一下,GCJ 对 Java 1.5 和 1.6 特性的处理能力如何?
          • 最后我知道,它只适用于 JDK 1.4,这太糟糕了。
          • GCJ 已经死了很多年,包括发布这篇文章的那一年。
          【解决方案8】:

          您尝试过 install4j 吗?这个概念有多种版本,有些是免费的。基本上,此应用程序会将您的应用程序编译为可执行安装程序,特定于您选择的操作系统。

          【讨论】:

            【解决方案9】:

            执行此任务的最简单方法是使用launch4j 作为Windows exe 包装器,然后使用inno setup 创建安装程序。当您为您的应用程序创建安装程序时,将文件夹添加到other application files 下。确保jre 在文件夹内。

            工作完成!!!

            【讨论】:

              猜你喜欢
              • 2011-03-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-06-15
              • 2019-11-13
              相关资源
              最近更新 更多