Java是我编程语言的选择。我总是遇到的问题,虽然分发我的应用程序最终用户。

给一个用户的一个罐子里并不总是用户友好的,因为我想和使用Java WebStart要求我维持一个网络服务器。

什么是最好的方法来分发Java应用程序?如果有什么Java应用程序的需要来安装项目的用户的电脑吗?是否有任何良好Java安装包装的系统了吗?

有帮助吗?

解决方案

有各种各样的解决方案,这取决于你分配的要求。

  1. 只是使用一个罐子里。这个假设的用户有正确的java版本的安装,否则用户会得到"类文件的格式版本的"例外情况。这是好的内部分布内部公司。

  2. 使用launch4j和安装喜欢NSIS.这给你更多的控制,虽然用户仍然可以做愚蠢的东西,像联合国安装java运行时间。这可能是最受欢迎的办法,并且我目前使用的。

  3. 使用Webstart。这也假定用户已经正确的java版本的安装,但它是一个很容易得到持续。我的经验是,这是好对严格控制的内联网的环境中,而是成为一个痛苦更大部署,因为它有一些很多奇怪的失败。它可以得到更好地与这个新的插件技术在Java1.7.

  4. 使用机代码编译器喜欢酒店喷射和分发作为一个可执行的,或包装在一个安装程序。昂贵的,它通常的联系你年龄稍大的java版本,并且有一些痛苦与动态类装载,但它非常有效的大规模部署在哪里,你需要最小化你支持麻烦。

其他提示

先进的安装者 使得它很容易包java应用程序作为窗户的可执行文件,这是相当灵活的方式可以设置。我已经找到,对于分发java应用windows客户端,这是最简单的方式去。

JSmooth 是一个简单的程序,该程序需要你的罐和包装在一个标准的窗户可执行的文件。它带有一个简单的图形用户界面,允许配置所需的JVM束它与应用程序或提供一个选项,下载它,如果它不是已经安装。你可以发送的文件或邮它有可能的依赖(或者让程序下载的额外依赖从网上启动时)。这也是免费的,因为啤酒和语言,这可能(或不可能)是一件好事。

这取决于如何复杂的目标用户。在大多数情况下你想要隔离他们,从事实上,你正在运行一个基于Java的应用程序。给他们一个机安装程序,做正确的事情(创始菜单项、发射器,注册添加或删除程序,等等。) 并且已经束Java运行(因而用户不需要知道或关心的话)。我谨建议我们的跨平台的安装工具, BitRock InstallBuilder.虽然它不是基于Java,通常用于包Java应用程序。它可以很容易地集成蚂蚁,你可以建立窗户安装人员从Unix/Linux/Mac和周围的其他方法。因为所产生的安装人员是司机,他们不需要自取步骤或java运行环境已经存在的目标系统,这意味着较小的安装和你节省一些麻烦。我还想提到我们有免费的许可证,开放源码项目

可执行的文件都是最好的,但它们的平台,即限制使用链: http://gcc.gnu.org/java/ linux产生可执行文件和使用launch4j: http://launch4j.sourceforge.net/ 产生windows可执行文件。包在linux上可以使用任何转或黛布打包.For win32尝试 http://en.wikipedia.org/wiki/Nullsoft_Scriptable_Install_System

如果它是一个真正的GUI具有终端用户的应用程序,你应该忽略lanaguage中,你写的程序(Java)和使用地安装用于每个所选择的平台。Mac人想要一个.德马吉和在窗户中的一个。msi或.可执行软件安装的路要走。在Windows我喜欢NSIS从NullSoft仅因为它是令人讨厌的小比InstallShield或installanywhere可.在OS x你可以指望JVM已经在那里。在Windows只需要检查和安装,它对于他们,如果必要的。Linux的人不会跑Java GUI应用程序和数几个会知道该怎么做有一个可执行的。罐子。

虽然我没有用 NSIS (Nullsoft编写脚本的安装系统)自己,还有安装脚本,这将检查是否需要java运行环境上安装的系统的目标。

许多样本剧本都可以从 代码的例子真实世界的安装者 网页,例如:

(请注意,我实际上没有使用任何脚本,所以,请不要把它作为一个认可。)

我需要一种方法,包我的项目及其依赖关系进入一个罐子的文件。

我发现什么,我需要使用Maven2会的插件: Maven2会插件

这似乎重复的功能 一罐子, 但不需要额外的配置得到它去。

为简单的Java应用我想使用的罐子。这是非常简单的分发一个文件,用户可以只需点击(窗口),或

java -jar jarname.jar

恕我直言,罐子里是要走的路时,简单是一个主要要求。

我的发展蚀RPC应用程序。通常开始一个日食的应用程序的可执行发射器包括在内。I包括java虚拟机应用程序内的文件夹在a/java运行环境子目录,以确保正确java版本将可以使用。

然后我们用创新的设置上安装机器的用户。

什么是最好的方法来分发 Java应用程序?如果有什么Java 应用程序需要伪装 用户的计算机?是否有任何 好Java安装/包装 系统了吗?

以我的经验(从 评估一些选项), install4j 是一个很好的解决方案。它创建了本地安装的任何平台,并且是专门针对安装Java应用程序。详情,请参阅"功能"在其网站上。

install4j是一种商业工具,虽然。特别是如果您需要的是相对简单的(刚刚分发的应用程序和安装的一些文物),其他许多好的选择存在,包括免费的(像 izPack 或者已经提到的 Lauch4j).但是你要求的 最好的 方式,并以我目前的知识install4j是一个,尤其是用于分发大或更加复杂Java(EE)应用程序。

最好的答案取决于平台。部署在窗户,我得到了很好的结果结合使用 一罐子launch4j.它没有采取一些时间来建立我的生成环境的适当(蚂蚁脚本,大多),但它现在是很痛苦的。

好吧,从我的观点的优质分配机制是利用喜欢的东西 ClickOnce, 或 WebStart 技术。你只部署版本的服务和它得到自动的客户当的版本发布。还有日食、能发挥平台包含UpdateManager什么WebStart做,但也更多。

因为我使用Maven2建立、部署只是一块蛋糕:复制的建罐的位置在服务器,更新jnlp文件,如果需要和你做。

installanywhere可是好的,但昂贵的一个-我有没有发现(as)良好的免费单

我会zip罐子文件以及与其他依赖罐,配置文件和文件沿用run.bat/run.sh.终端用户应当能够将它的任何位置和编辑的运行。蝙蝠如果要求(它应该运行,而无需编辑在大多数情况下)。一个安装可能是有用的,如果你想要创造条目在开始菜单、桌面系统的盘等等。

作为用户的我喜欢压缩和运行的安装类型(没有开始菜单项请).然而外部的人就业可能具有不同的喜好。因此,如果应用程序主要是针对商拉链运行。bat的路线和应用程序对一般公众可以安装使用安装。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top