分发Java应用程序的最佳方式是什么? [关闭]

问题

Java是我选择的编程语言之一。尽管将我的应用程序分发给最终用户,但我总是遇到这个问题。

为用户提供JAR并不总是像我希望的那样友好,并且使用Java WebStart要求我维护一个Web服务器。

分发Java应用程序的最佳方法是什么?如果Java应用程序需要将工件安装到用户的计算机,该怎么办?那里有没有好的Java安装/包装系统?


#1 热门回答(84 赞)

根据你的分销要求,有多种解决方案。

  • 只需用一个罐子。这假设用户安装了正确的java版本,否则用户将获得"类文件格式版本"异常。这适用于公司内部的内部分发。
  • 使用launch4j和NSIS之类的安装程序。这为你提供了更多的控制,尽管用户仍然可以做一些愚蠢的事情,比如卸载java运行时。这可能是最流行的方法,也是我目前使用的方法。
  • 使用Webstart。这也假设用户安装了正确的Java版本,但它更容易上手。我的经验是,这对于严格控制的Intranet环境来说很好,但是由于它有许多奇怪的故障,因此会因为更大的部署而变得痛苦。使用Java 1.7中的新插件技术可能会更好。
  • 使用Excelsior JET等本机代码编译器并将其作为可执行文件分发,或将其包装在安装程序中。价格昂贵,而且它通常会将你与旧版本的java相关联,并且动态类加载会有一些麻烦,但它对于需要最小化支持麻烦的大规模部署非常有效。

#2 热门回答(9 赞)

Convert Java to EXE - Why, When, When Not and How


#3 热门回答(5 赞)

advanced installer可以很容易地将java应用程序打包为Windows可执行文件,并且它的设置方式非常灵活。我发现,为了将Java应用程序分发到Windows客户端,这是最简单的方法。