独立的java程序

时间:2014-08-18 20:45:32

标签: java

java程序的新手为noob问题道歉。我编写了一个java程序,我使用" java myprog"命令在终端窗口中。我想将此程序交给朋友,但不确定该人员至少需要运行该程序。代码是否可以编译为完全独立于我的朋友可能拥有或不拥有的任何Java安装?对方是否需要重新编译代码?

5 个答案:

答案 0 :(得分:2)

选项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并不是免费的。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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