Java是我选择的编程语言之一.尽管将我的应用程序分发给最终用户,但我总是遇到这个问题.
为用户提供JAR并不总是像我希望的那样友好,并且使用Java WebStart要求我维护一个Web服务器.
分发Java应用程序的最佳方法是什么?如果Java应用程序需要将工件安装到用户的计算机,该怎么办?那里有没有好的Java安装/包装系统?
根据您的分销要求,有多种解决方案.
只需用一个罐子.这假定用户安装了正确的java版本,否则用户将获得"类文件格式版本"异常.这适用于公司内部的内部分发.
使用launch4j和NSIS之类的安装程序.这为您提供了更多的控制,尽管用户仍然可以做一些愚蠢的事情,比如卸载java运行时.这可能是最流行的方法,也是我目前使用的方法.
使用Webstart.这也假设用户安装了正确的java版本,但它更容易上手.我的经验是,这对于严格控制的Intranet环境来说很好,但是由于它有许多奇怪的故障,因此会因为更大的部署而变得很痛苦.使用Java 1.7中的新插件技术可能会更好.
使用Excelsior JET之类的本机代码编译器并将其作为可执行文件分发,或将其包装在安装程序中.价格昂贵,而且它通常会将您与旧版本的java相关联,并且动态类加载会有一些困难,但它对于需要最大限度地减少支持麻烦的大规模部署非常有效.
高级安装程序可以轻松地将Java应用程序打包为Windows可执行文件,并且它的设置方式非常灵活.我发现,为了将Java应用程序分发到Windows客户端,这是最简单的方法.