admin
管理员
管理员
  • UID1
  • 粉丝1
  • 关注0
  • 发帖数378
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:2289回复:0

JavaFX - 部署

楼主#
更多 发布于:2015-12-16 15:54

图片:1555264493-0.png


我想已经写到本教程系列的最后一部分了,应该教你如何部署(例如:打包和发布)AddressApp



第7部分的主题

  • 使用e(fx)clipse本地包(Native Package)部署我们的JavaFX应用程序。



什么是部署

部署是打包和发布软件给用户的过程。这是软件开发的关键部分,因为它是第一次与使用我们软件的用户交流。
Java的广告口号是编写一次,到处运行,这说明Java语言的跨平台好处。理想情况下,这意味着我们Java应用可以运行在任何装备有JVM的设备上。 在过去,安装Java应用程序的用户经验不总是平滑的。如果用户在系统中没有要求的Java版本,它必须首先直接安装它。这导致有些困难,例如,需要管理员权限,Java版本之间的兼容问题等等。 幸运的是,JavaFX提供新的部署选项称为本地打包(也称为自包含应用程序包)。一个本地包是一个包含你的应用代码和平台指定的Java运行时的打包程序。 Oracle提供的官方JavaFx文档包含一个所有JavaFX部署选项的扩展指南。 在本章节中,我们教你如何使用Eclipse和e(fx)clipse插件创建本地包。



创建本地包

目标是在用户的计算机上单个目录中创建一个自包含的应用程序。下面是AddressApp应用看起来的样子(在Windows上):

图片:1555262K7-1.png


app目录包含我们的应用数据和runtime目录(包含平台相关的Java运行时)。
为了让用户更加舒适,我们也提供一个安装器:
  • Windows下的exe文件安装器
  • MacOS下的dmg(拖放)安装器。
E(fx)clipse插件会帮助我们生成本地包和安装器。


第1步 编辑build.fxbuild

E(fx)clipse使用build.fxbuild文件生成一个被Ant编译工具使用的文件。(如果你没有一个build.fxbuid文件,在Eclipse中创建一个新的Java FX项目,并且拷贝生成的文件过来。

  1. 从项目的根目录下打开build.fxbuild。

  2. 填写包含一个星号的字段。对于MacOS:在应用程序标题中不能使用空格,因为好像会产生问题

    图片:1555264538-2.png


  3. 在Windows下Packaging Format选择exe,MacOS下选择dmg,Linux下选择rpm

  4. 点击Generate ant build.xml only的连接(在右边可以找到)。

    图片:1555263T6-3.png


  5. 验证是否创建一个新的build目录和文件build.xml


第2步 添加安装程序的图标

我们希望安装程序有一些好看的图标:
  1. 在build目录下创建下面的子目录:
    • build/package/windows (只用于Windows)
    • build/package/macos (只用于macos)
  • 拷贝上面的相关图标到这些目录中,现在它应该看起来如下所示:

    图片:1555263235-4.png

  • 重要:图标的名称必须精确匹配build.fxbuild中指定的Application的标题名:
    • YourAppTitle.ico
    • YourAppTitle-setup-icon.bmp
    • YourAppTitle.icns


  • 第3步 添加资源

    我们的resources目录不能自动拷贝。我们必须手动添加它到build目录下:
    1. 在build目录下创建下面的子目录:
      • build/dist
  • 拷贝resources目录(包含我们应用的图标)到build/dist.

    图片:1555261005-5.png



  • 第4步 编辑build.xml包含图标

    E(fx)clipse生成的build/build.xml文件(准备使用Ant执行)。我们的安装器图标和资源图像不能正常工作。
    当e(fx)clipse没有告诉它包含其它资源,例如resources目录和上面添加的安装文件图标时,我们必须手动编辑build.xml文件。
    打开build.xml文件,找到路径fxant。添加一行到${basedir}(将让我们安装器图标可用)。


    build.xml - 添加"basedir"


    <path id="fxant">
      <filelist>
        <file name="${java.home}\..\lib\ant-javafx.jar"/>
        <file name="${java.home}\lib\jfxrt.jar"/>
        <file name="${basedir}"/>
      </filelist>
    </path>

    找到块fx:resources id="appRes",文件的更下面位置。为resources添加一行:


    build.xml - 添加"resources"


    <fx:resources id="appRes">
        <fx:fileset dir="dist" includes="AddressApp.jar"/>
        <fx:fileset dir="dist" includes="libs/*"/>
        <fx:fileset dir="dist" includes="resources/**"/>
    </fx:resources>

    有时候,版本数不能添加到fx:application中,使得安装器总是缺省的版本1.0(在注释中很多人指出这个问题)。为了修复它,手动添加版本号(感谢Marc找到解决办法)。 解决):


    build.xml - 添加 "version"


    <fx:application id="fxApplication"
        name="AddressApp"
        mainClass="ch.makery.address.MainApp"
        version="1.0"
    />

    现在,我们已经能够使用ant编译运行build.xml了。这将会生成一个可运行的项目jar文件。但是我们希望更进一步,创建一个很好的安装器。


    第5步(Windows) - Windows exe安装器

    图片:1555264F3-6.png


    使用Inno Setup,我们能为我们的应用程序创建一个单独.exe文件的Windows安装器。生成的.exe执行用户级别的安装(无需管理员权限)。也创建一个快捷方式(菜单和桌面)。

    1. 下载Inno Setup 5以后版本,安装Inno程序到你的计算机上。我们的Ant脚本将使用它自动生成安装器。

    2. 告诉Windows Inno程序的安装路径(例如:C:\Program Files (x86)\Inno Setup 5)。添加Inno安装路径到Path环境变量中。如果你不知道哪里可以找到它,阅读Windows中如何设置路径和环境变量.

    3. 重启Eclipse,并且继续第6步。


    第5步(MAC) - MacOS dmg安装器

    图片:1555264553-7.png


    为了创建Mac OS dmg拖放安装器,不需要任何的要求。
    注意:为了让安装器映像能工作,它的名称必须与应用名称相同。


    第5步(Linux等) Linux rpm安装器

    其它打包选项(Windows的msi,Linux的rpm)参考本地打包博客 或者本oracle 文档.


    第6步 运行build.xml

    最后一步,我们使用ant运行build.xml,右击 build.xml文件| Run As | Ant Build

    图片:1555261393-8.png


    编译将运行一会(在我的计算机上大概1分钟)。
    如果一切都成功,你应该在build/deploy/bundles目录下找到本地打包。Windows版本看起来如下所示:

    图片:15552B5G-9.png


    文件AddressApp-1.0.exe可以用作为单个文件安装应用。该安装程序将拷贝打包到C:/Users/[yourname]/AppData/Local/AddressApp目录下。

     

     

     

     

     

     

     

    异常中心网是一家专门收集整理程序员编程过程中遇到的常见异常(exception)以及各种异常问答中心的网站。异常中心网旨在,减少程序员在编码遇到异常,处理各种异常时间和痛苦,让程序员能更愉快的、快速的定位异常并查找对应的异常解决方案。异常中心网诚心打造最完美的编程社区为程序员用户服务,努力成为最好的程序员乐园程序员社区程序异常中心程序bug中心异常问答中心

     

    喜欢0 评分0
    游客

    返回顶部