java - 使 jar 文件可在其他计算机上运行?

标签 java windows jar

我创建了执行一些文件操作的 jar 文件,我需要将它们分发给网络上的一些人。但令我惊讶的是,该 jar 无法在他们的机器上运行!有人告诉我,另一个工作可以通过安装 Java 开发人员工具包来运行它,但如果我需要分发给多个人,这不是最好的方法。

我有哪些选择,“最佳实践”解决方案是什么?我不想安装JDK(我想我只需要这里的JRE,但还没有测试),我是否可以简单地将jar重写成小程序,以便它可以在浏览器中运行?或者我应该弹出最新 JRE 版本的链接并要求他们下载它?

编辑:我通过 eclipse(Export>Runnable Jar) 创建了 jar,它生成了一个我可以运行的可运行 jar。当移动到另一台机器时,Windows 不知道用什么来打开文件。看来我需要JRE(我们在机器上安装的java只是浏览器插件,而不是我找到的JRE。)我想知道是否有一种方法可以在我这边做更多的工作来防止这种情况发生最终用途会更简单(Launch4j已经被建议,这就是我正在进入的,或者只是手动安装。)我已经在java中学习了一些类,但它们是纯编码,并且从未涵盖如何“分发”jar .

最佳答案

Java 程序需要 JRE 才能运行。对于可运行的 jar 和 applet 来说都是如此。

您可以使用 jnlp 自动下载 JRE,但由于小程序和 Webstart 几乎已被弃用,因此这可能不是正确的选择。

您可以告诉您的用户,在运行您的程序之前,他们需要在其计算机上安装 JRE。这是相当合理的,因为大多数人都有 JRE,但如果您的用户有旧版本的 JRE 而您正在编译新版本,则情况可能会变得复杂。

您还可以使用 JWrapper 之类的方式将 JRE 与您的程序捆绑在一起。或Launch4J 。这将保证您的程序可以在任何客户端计算机上运行,​​但这意味着您必须为每个操作系统创建单独的版本,并且下载大小将大大增加,因为您必须在项目中包含 JRE。

不幸的是,没有任何真正的最佳实践可以帮助您。根据我的经验,大多数小型项目只需要安装 JRE,而大多数大型项目(例如 Puppy Games 的游戏)在程序本身中捆绑了 JRE。这完全取决于你。

关于java - 使 jar 文件可在其他计算机上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24914067/

相关文章:

java - Jasper 将格式化文本传递为字段 Jasper 更改格式

java - Java Portlet 是如何工作的?

java - 如何分割字符串并保存分割的 2 个字符?

linux - "Modern"带有 GLFW 的 Linux 上的 OpenGL

c++ - gSOAP 2.8.30 与 VS6 C++ 的兼容性

签署 jar 后 Java 小程序仍然出现安全错误

java - 如何在Android Studio中运行jar文件?

java - 将 facebook.authorize 与 Android SDK 一起使用不会调用 onActivityResult

windows - 检查带有模式的文件是否存在

java - jar文件不会执行