我创建了执行某些文件操作的jar文件,我需要将它们分发给网络上的一些人。令我惊讶的是,罐子在他们的机器上无法运行!有人告诉我,另一个工作是通过安装Java开发人员套件来运行它,但如果我需要分发给多个人,这不是最佳方式。
我在这里有什么选择,以及最佳实践'解决方案?我宁愿不安装JDK(我想我只需要JRE,但是还没有经过测试),我能简单地将jar重写为applet,以便它可以在浏览器中运行吗?或者我应该弹出一个指向最新JRE版本的链接并要求他们下载它?
编辑:我通过eclipse(Export> Runnable Jar)创建了jar,它生成了一个可以运行的可运行的jar。当移动到另一台机器窗口时,不知道打开文件的内容。看起来我需要JRE(我们在机器上安装的java只是浏览器插件,而不是我找到的JRE。)我想知道是否有办法在我的端部做更多工作以防止这样做最终用法会更简单(Launch4j已被建议,我正在进入,或者只是手动安装。)我在java中学习了一些类,但它们是纯编码,从未涵盖过罐子应该是什么样的#39 ;分布式'
答案 0 :(得分:4)
Java程序需要运行JRE。对于可运行的罐子和小程序来说,这是真的。
您可以使用jnlp为您自动下载JRE,但由于applet和webstart几乎全部被弃用,因此可能无法实现。
您可以告诉您的用户,在运行程序之前,他们需要在他们的计算机上安装JRE。这是非常合理的,因为大多数人都有JRE,但如果您的用户拥有较旧版本的JRE并且您正在为较新版本进行编译,则会变得复杂。
您还可以使用JWrapper或Launch4J之类的内容将JRE与您的程序捆绑在一起。这将保证您的程序可以在任何客户端计算机上运行,但这意味着您必须为每个操作系统创建单独的版本,并且由于您必须在项目中包含JRE,因此下载量将大大增加。
遗憾的是,没有任何真正的最佳做法可以帮助您。根据我的经验,大多数小型项目只需要安装JRE,大多数大型项目(如Puppy Games的游戏)将JRE捆绑在程序内部。它真的取决于你。
答案 1 :(得分:0)
http://launch4j.sourceforge.net/
但我不认为这是最佳做法
答案 2 :(得分:-1)
你总是可以写一个网络应用程序 - 每个人都有一个浏览器
如果你想运行java代码你需要jdk / jre - 你可以给一个包含jar和jre的zip文件作为一个笨重的方式来安装"你的应用
jnlp或webstart可以帮助客户端加载正确版本的jre