是否每个人都认为其他人不会以jar格式发布软件,然后以exe格式发布软件?
发布于 2009-09-21 08:16:18
发布于 2009-09-21 08:49:17
Java软件可以通过多种方式发布,具体取决于目标市场。
对开发人员来说最简单的(但对最终用户来说最难的)是只发布一个jar文件(或一组Jar文件)的。在许多系统上,JAR将是“可双击的”,因此充当可执行文件。但是,如果最终用户没有安装Java,它将无法工作。
如果您可以控制目标环境,这是很好的。如果你想同时瞄准Windows、Mac和Linux,也是个不错的选择。任何使用Java的平台都可以运行它,包括您没有考虑过的平台。
如果你的目标是普通用户,那就不好了。它不能执行“安装任务”,不能在“开始”菜单中设置任何内容,也不能将自己与文件类型相关联。
在大多数情况下,Java Web Start是我的首选。它提供了一个基于Java的安装程序,可以设置开始菜单,关联文件类型和所有这些优点。但在安装时会调出一个安全盒。
适用于大多数情况。您只有一个用于所有OSes的链接。
如果您怀疑用户没有安装JRE,或者您不想让最终用户知道应用程序是用Java编写的,这是不好的。
您可以发布一个包含Jars的压缩文件,以及一个.bat文件和一个.sh文件。
适用于管理员、开发人员和命令行应用程序。
对于不知道bat和shell脚本是什么的最终用户来说,这是不好的,如果脚本在他们的系统中被破坏了,他们也不知道该怎么办。
Jar文件周围的一个精简的.exe包装器。这会给最终用户一种应用程序是原生的印象。它们通常带有..。
一个支持Java的安装程序。这是一个本机安装程序(因此Windows、Mac和Linux的安装程序各不相同)。这将能够检测目标计算机是否安装了Java,如果没有,则能够开始安装JRE。它还将能够做所有有趣的安装后的事情,如设置文件关联和添加项目到开始菜单。
适用于大多数情况。
如果你的目标是多个平台,那就不好了,因为你需要为每个平台维护一个安装程序。同样糟糕的是,如果目标平台之一没有Java感知的安装程序(然后您将需要在该平台上使用上面的其他方法)。
本机EXE。使用Java到本机编译器(Jet、GCJ或IKVM)可以创建本机可执行文件。
如果你真的不想让别人知道你在使用Java,或者需要以某种奇怪的方式与本机环境集成(ikvm将允许你以简单的.NET对象的形式在.NET中使用你的Java代码),这是个不错的选择。
尽管人们认为这会神奇地让应用程序变得更快,但事实并非如此。
一个包。JPM是Java的包管理器,就像nodejs的npm一样。这允许您通过一个小的命令行脚本安装软件,例如,要安装jython,您可以使用jpm install -f --name jython org.python:jython。适用于开发人员工具。对终端用户不好,因为它是基于命令行的,需要他们首先安装jpm。
编辑: IKVM,jpm
发布于 2009-09-21 08:33:44
另一种选择是install4j,
是一个强大的多平台Java installer构建器,可以为Java应用程序生成本机安装程序和应用程序启动器。
我下载并安装了一个使用它的应用程序,它工作得很好。然而,它的价格可能会阻止个人或小公司试图部署小型Java应用程序。
https://stackoverflow.com/questions/1453369
复制相似问题