【问题标题】:Stand alone java program独立的java程序
【发布时间】:2014-08-20 12:39:16
【问题描述】:

Java 程序的新手,因此对菜鸟问题表示歉意。我编写了一个 java 程序,我在终端窗口中使用“java myprog”命令运行该程序。我想将此程序提供给朋友,但不确定该人至少需要什么才能运行该程序。代码可以编译为完全独立于我的朋友可能拥有或不拥有的任何 java 安装运行吗?其他人是否需要重新编译代码?

【问题讨论】:

  • 您需要创建一个.jar 文件。

标签: java


【解决方案1】:

选项 1

你可以给他们编译后的输出(the .class)文件。

他们需要与您用于编译代码的版本兼容的 JRE 版本(但不是开发人员需要编译的 JDK)。最简单的方法就是匹配版本。例如,如果您使用的是 J2SE 7,则为您的朋友获取 JRE 7。

有了这个,您的朋友应该能够输入java myprog 并获得与您相同的结果。如果您希望您的朋友像您一样从命令行运行程序,那么这可能是最简单的方法。

所以,如果你在你的机器和你朋友的机器上都输入:

java -version

...如果您获得相同的主要版本,那么您可能是在正确的范围内。

选项 2

你也可以创建一个executable .jar 文件,如果你想要你的朋友可以双击的东西,但他们仍然需要安装 JRE 的版本,如果你是创建可执行 JAR 可能会有点困难语言新手。他们需要一些学习和试错时间。这绝对是比选项#1更复杂的方法。

选项 3

有些编译器可以将您的 java 程序转换为本机代码(Windows 中的 .exe 文件),但您需要知道您朋友正在运行什么操作系统,并确保您正在为您朋友的操作系统进行编译.

我几年前听说过的这些工具的一个例子是Excelsior JET(尽管我并不认可它是一种工具——只是说它们存在)。

这绝对是最高级/最困难的选项,并且比 选项 #2 包含更多的试错,但如果您谈论的是一个非常简单的程序,只有一个文件,那么它可能非常简单。

当然,我上次查看时 Excelsior JET 不是免费的。

【讨论】:

    【解决方案2】:

    我已经写了一篇关于这个主题的整篇文章:

    Convert Java to EXE - Why, When, When Not, and How

    【讨论】:

      【解决方案3】:

      您想创建一个可执行的 .jar 文件。如果您的朋友安装了 Java,他只需双击该文件即可运行该程序。

      【讨论】:

      • 双击?如果 OP 的代码需要 args 并且有一个基于 UI 的操作系统怎么办?
      • 天啊,万一呢。不过,请告诉我更多有关您基于 UI 的操作系统的信息。基于用户界面的操作系统听起来很有趣。
      【解决方案4】:

      Java 程序通常被编译成Java bytecode - 而不是原生可执行文件。编译后,生成的类文件将在任何足够新的JVM 上可执行,无论底层硬件平台或操作系统如何。但是,为了拥有 JVM,您的朋友通常需要安装适当的 Java 运行时环境 (JRE)。

      另外,有一些方法可以将程序与 JRE 一起分发,但我相信这种方法并非易事。有一些程序,例如launch4j,可以在某种程度上自动化这个过程,如果你想这样做的话。

      【讨论】:

        【解决方案5】:

        如果朋友不在 myprog.class 所在的目录中,上面给出的建议提供 .class 文件并使用 java myprog 的选项可能不起作用,因为可能需要指定类路径。所以朋友可能要使用java -cp path_to_myprog myprog

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多