【问题标题】:Running a Jar File in a environment without Java [duplicate]在没有 Java 的环境中运行 Jar 文件 [重复]
【发布时间】:2015-03-18 01:45:37
【问题描述】:

我制作了一个可执行的 jar 文件,但我想将它分发给那些计算机(Mac 或 PC)上可能没有安装 Java 的用户。作为程序员,我能做些什么来确保没有 Java 的人可以运行吗?

【问题讨论】:

  • 看看这是不是你想要的:stackoverflow.com/questions/2258932/…
  • 因为它是可能的,它打败了java的要点。它旨在与 jvm 一起运行,并且是一个只需要运行一次的多平台程序。安装java并不难,很多电脑都预装了。

标签: java


【解决方案1】:

除了 1) 要求他们安装 Java,或 2) 编写自己的 JVM,答案通常是否定的。您的 jar 文件必须有一个 JVM/JRE,除非您有一个可以从您的代码创建本机可执行文件的开发环境。但是,它不会是一个标准的 jar 文件——它将是一个本地二进制文件(如果这个开发环境只是将某种 JVM 捆绑到包含你的 jar 文件的包中,并带有一个小的可执行存根——这仍然是把 JVM在他们的机器上 - 它只是对用户有点隐藏)。因此,除非您可以从源代码生成本机二进制文件(不是 jar 文件),否则不会。

与在 .NET 中编写一些东西并尝试在不了解 .NET 是什么的环境中执行它、编写需要 Python 解释器并尝试在没有 Python 的环境中运行它等一样。

【讨论】:

    【解决方案2】:

    Running java without installing jre?

    创建一个文件夹(比如说 PROGRAM),其中包含已安装 JRE 的文件夹 bin 和 lib。 在我的计算机中,我可以在以下路径找到它们: C:\Program Files\Java\jre1.8.0_25

    然后使用 Launch4J 在包含文件夹 (PROGRAM) 中创建程序的 JAR 或 Exe 文件。此外,当您创建此文件时,您需要手动选择这些 bin 和 lib 文件夹的根目录。

    然后用户不需要安装 JRE,但是他需要有包含程序的文件夹以及其中的 bin 和 lib 文件。

    如果我的英语不够,而这些类型的解决方案正是您要寻找的,那么这里有另一个来源......

    How to bundle a JRE with Launch4j?

    【讨论】:

    • 这种方式虽然打败了java
    • @Dando18 不是真的;对于拥有 Java 的用户,您仍然拥有“一次编码,在大多数地方运行”功能,您只需获得添加的“为没有 Java 的 Windows 用户运行”功能。
    • 我没有提到还有程序 Excelsion Jet,它将 Java 编译为本机代码,用户实际上可以在没有 JRE 的情况下运行 Exe。但是我没有自己尝试过。除此之外,我没有其他想法。
    • 它也能在 Raspi 上运行吗?在 Atom 处理器上?在linux系统上?您要提供多少本机二进制文件?
    【解决方案3】:

    无需 Launch4j 或任何其他软件。在 Eclipse 中将您的项目转换为 .jar 文件,然后将安装的 JRE 文件夹放在您的 .jar 文件所在的同一文件夹中。

    从系统中卸载 JAVA,然后转到该 bin 文件夹中的 JRE 文件夹,然后打开命令提示符。 类型:

    java -jar ..\..\fileName.jar
    
    i.e java -jar ..slash..slashfileName.jar
    

    确保 JRE 安装文件和您的 .jar 文件在同一个文件夹中。

    【讨论】:

    • 为什么我们需要卸载 Java,而且我这样做它可以在没有 JRE 的情况下工作?
    • 无需卸载 JAVA,但重点是即使您卸载 JAVA,JAR 也将通过使用上述特定文件夹中的 java.exe 运行,并且在没有 JRE 的情况下也可以运行
    • 在创建 JAR 文件 "..slash..slashfileName.jar" 之后,这个 jar 文件可以在任何其他系统中正常工作,而无需使用 JRE?
    • 是的,我自己试过了,效果很好
    • 谢谢我去试试。
    猜你喜欢
    • 2015-03-22
    • 2014-08-21
    • 1970-01-01
    • 2013-07-14
    • 2013-09-09
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多