java - 独立的java程序

标签 java

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

最佳答案

选项1

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

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

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

因此,如果您同时在您的机器和您 friend 的机器上键入:

java -version

...并且您获得了相同的主要版本,那么您可能在正确的范围内。

选项 2

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

选项3

有些编译器可以将您的 java 程序转换为 native 代码(Windows 中的 .exe 文件),但您需要知道您的 friend 运行的是什么操作系统,并确保您'为你 friend 的操作系统重新编译。

我多年前听说过的这些工具的一个例子是 Excelsior JET (虽然我不认可它作为一种工具 - 只是说它们存在)。

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

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

关于java - 独立的java程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25371734/

相关文章:

java - 如何从字符串创建 BufferedReader?

java - 调用 Birt Report 时查看 session 不可用或已过期

java - scipy.optimize.curve_fit 使用 Runtime.getRuntime().exec() 在 Java 中运行

macos - 使用 libjvm.dylib 插件时 Java 控制面板意外退出 |操作系统

java - 我正在研究 Euler 12,我的代码似乎可以正常工作,但是太慢了,非常非常慢。我该如何修改它才能运行得更快?

java - 如何处理jsps中的复杂性

java - 我正在尝试更新表的值 SQL 在 Java 中出现错误

java - jsp直接跳转到html而不是通过servlet

java - apache common vfs和mercurial的集成

java - 您能为 Java Web 应用程序推荐一个工作流库或框架吗?