打包Java软件在Windows上运行的最佳方法是什么?

时间:2010-07-08 15:17:36

标签: java windows maven-2

打包Java软件以在Windows上运行的最佳方法是什么?是否有编写.BAT文件的标准,可以在机器上发现最新安装的JRE?有没有Maven插件呢?可执行Jar文件的处理是什么?

4 个答案:

答案 0 :(得分:3)

取决于您的需求。

我们发现使用One-JAR + JSmooth可以提供非常好的用户体验,因为它允许我们分发单个EXE文件,该文件可以放在用户系统的任何位置,而不是安装二进制文件,需要安装和卸载等.JSMooth检查相应的Java运行时是否存在,如果没有找到,则重定向到官方下载站点。

One-jar的原因是你通常需要使用最好单独使用的库jar,但JSmooth只允许使用单个jar文件。

One-Jar SDK和JSmooth也是可编写脚本而不依赖于Windows,因此我们可以在Linux上运行的Hudson引擎上构建新版本。

答案 1 :(得分:3)

我毫无疑问会建议您使用Java Web Start,因为它可以让您轻松控制所使用的版本(到目前为止,更容易使用的更新机制)。

答案 2 :(得分:1)

过去我使用了像launchForJ这样的java安装程序包。但是,很多这些软件包使用Java,因此您可能需要使用本机Windows代码编写的批处理或简单可执行文件,以快速检查是否已安装Java,然后运行安装程序。

由于Java在安装期间使用系统变量,因此您应该能够以这种方式检查所需的版本(或更高版本)是否存在。

答案 3 :(得分:0)

标准方法是使用Java Web Start

  

使用Java Web Start技术,只需通过网络单击即可部署独立的Java软件应用程序。 Java Web Start确保将部署最新版本的应用程序,以及Java Runtime Environment(JRE)的正确版本

Maven有一个Webstart Maven Plugin来帮助构建可以通过Web Start部署的应用程序包。

另一种解决方案是使用跨平台安装程序生成器来生成安装程序。我个人喜欢IzPack(我认为JSmooth非常相似,但我对IzPack有更多经验),如果你专门针对Windows平台,你可以使用IzPack来Build [a] Native Windows Installers with IzPack Native Launcher

  

当IzPack出现问题时仍然会出现问题   目标系统没有JRE   安装。用户首先需要   安装它,然后运行IzPack   安装程序。这不是问题   Linux或BSD用户,因为他们   一般熟练,他们知道如何   用手或包装做到这一点   系统(RPM,DEB,ebuilds,ports,   ...)。同样,Mac OS X用户也会   因为它没有太多问题   随操作系统提供。   但情况更多   在Windows平台上很复杂   必须安装JRE。更差,   可以安装几个实例   一个有时凌乱的情况。

     

IzPack Native Launcher试图   解决这个问题。它是一个C ++原生   可用的应用程序   非常宽松的麻省理工学院许可证和   使用wxWidgets进行GUI。它是   因此跨平台(为了   历史学家:它最初开发的   一个FreeBSD盒子),但大多数人都会   在Windows上需要它。它使用简单   配置文件,将首先   检查JRE。如果找不到,   它会弹出一个对话框来让   用户可以选择以下内容   选项:

     
      
  • 手动指定JRE位置
  •   
  • 从互联网下载一个
  •   
  • 安装由打包者提供的一个(如果有)。
  •   

IzPack还提供Maven Plugin。值得一试。