zoukankan      html  css  js  c++  java
  • 【原创】使用Install4j为Javafx2.x程序制作Windows安装包[前篇]

    最近因项目需要,我需要给自己用Javafx2.1开发的桌面软件SmartHome制作Windows安装包,由于过程还蛮复杂,于是记录下来留给以后看。

    一.制作工具

    1.Fatjar:Eclipse 的插件,它的插件更新网址:http://kurucz-grafika.de/fatjar

    2.Install4j:一个使用Eclipse RCP开发的收费的用于为java程序制作安装包的软件,提供90天的试用期,官方下载网址:http://www.ej-technologies.com/products/install4j/overview.html

    3.JRE:需要的是JDK7u6,下载地址:http://jdk7.java.net/download.html  这个是目前(截止2012-7-17)最新的JRE,因为它已经将Javafx2.2包括其中了

    详细信息网址(开源中国):http://www.oschina.net/news/30075/javafx-2-2

    诚然,信息中提到该JDK中提供了两种用于打包Javafx应用程序的工具,一种是使用jdk自带的工具javafxpackager,一种是使用ant,个人感觉两种方式都不好用,特麻烦...囧

    官网上的帮助文档地址:

    Native packaging for JavaFX : https://blogs.oracle.com/talkingjavadeployment/entry/native_packaging_for_javafx

    Deploying JavaFX Applications : http://docs.oracle.com/javafx/2/deployment/jfxpub-deployment.htm

    本教程的主要内容就是使用上面的工具Javafx应用程序制作windows安装包

    二.制作步骤

    1.安装JDK7u6,安装时我指定JRE安装在和jdk的同一个目录下,文件夹的名称是jre7u6,我安装之后的目录是 D:\Java\jdk1.7.0_06  相应的jre目录是 D:\Java\jre7u6

    将SmartHome项目的java环境换成刚才安装的jdk,方法很多,我习惯新建User Libarary,取名为jre7u6-javafx2.2(随便命名)

    删除以前的分开来的jre和javafx的rt,添加这个jre一个即可!

    20120717125203

    2.安装Farjar,Eclipse插件的在线安装方式,安装完成之后重启Eclipse,点击项目,选择build Fat Jar,配置一些基本信息,例如MainClass,ClassPath

    第二页要选中项目所需要的第三方jar包

    image    image   image

    3.经过前两步得到了Jar包 smarthome0.0.7_fat.jar,在项目的根目录下,然后新建一个文件夹SmartHome,存放一些制作安装包所需要的内容,大致内容其实也就是几个:

    (1)项目打包好的Jar包 smarthome0.0.7_fat.jar

    (2)软件的图片资源,也就是logo图标,Splash图片等等,可以没有

    (3)第三方jar包,因为上面的fatjar已经将所需要的第三方jar打包好了,所以这里可以不用了  ......

    image

    4. 安装Install4j,我下载了试用版,只能试用90天,不过够我用了,不过,试用版本得到的软件会有一些烦人的提示哟,不喜欢的话就去下破解版吧或者buy it!

    安装好了之后,新建一个project,取名smarthome,保存到哪里都行,这里我还是保存到了SmartHome目录下,因为install4j这个软件经常需要添加文件或者文件夹

    它默认是进入的是该project所在的目录

    image

    5.接下来是最关键的一步:制作JRE Bundle,这是为了后面的media file的制作做准备

    原因是这样子的:install4j的server上没有最新的jdk7u6,而客户机一般是没有安装java环境的,即使有,也不可能是最新的jre7u6,所以,要让软件绑定这个特定的jre!

    为了绑定这个特定的jre,首先就是要制作一个JRE Bundle,然后在后面的media file的配置中可以选择这个jre bundle

    详细内容可以查看install4j的安装目录下的帮助文档:jreBundle.html,写的很好很详细

    在install4j的主菜单中选择 Project->Create a JRE Bundle,开始制作。

    在 Select the JRE中选择第一步中安装的jre7u6目录

    在Output Directory中,这里是指定生成的jre bundle文件的导出路径,默认是放在install4j的安装目录下的jres文件夹中,因为我之前已经制作过了一次,

    所以jres目录下已经有了这个jre bundle,所以我重新指定导出到前面创建的SmartHome目录下,因为我通过一次制作错误发现其实查找路径包含了当前的install4j project的根目录!

    但是帮助文档中并没有提到!

    在帮助文档 Media File Wizard: Bundled JRE 中说到JRE Bundle文件的查找路径是 $INSTALL4J_HOME/jres and {user home directory}/.install4j5/jres

    “If you choose to bundle a JRE by selecting the "bundle the following JRE" radio button, you have to choose a JRE from the drop down list below it. If you select "manual entry" in the drop down list, a text field will appear where you can enter a file name with compiler variables. Please note that you cannot enter a path here, but only a bundle filename that will be searched in $INSTALL4J_HOME/jres and {user home directory}/.install4j5/jres. The existence of this bundle file will be checked only at compile time, not by the wizard.”

    image     image     image

    在Bundle file name是用于指定budle文件的名称,指定Java version和Custom ID,不指定的话install4j自己能够检测出来的

    20120717140852

    其他的步骤默认即可,最后生成bundle windows-x86-1.7.0.6_jre7u6-javafx2.2.tar.gz 是一个压缩文件,至于为什么是Linux下常见的压缩文件我也不知道,软件开发者喜欢?也未必。。。

    生成的budle文件的名称  {platform}-{Java version}-{Custom ID} 后面两个可以自己指定,如果不指定使用默认,那么生成的bundle文件是 windows-x86-1.7.0_06-ea.tar.gz

    image

    6.开始真正的制作安装包!我只介绍我需要配置的步骤,不详细描述Install4j的具体使用!

    使用教程参考网址:

    Install4j使用指南: http://wenku.baidu.com/view/f8abc62ded630b1c59eeb544.html###

    用install4j为Java打包exe教程: http://wenku.baidu.com/view/d0fb8e0716fc700abb68fcc2.html###

    系统安装包设计开发说明(By Install4j): http://wenku.baidu.com/view/20f86306bed5b9f3f90f1ced.html###

    (1)General Setting

    在Application Info中设置软件的Full Name和Short Name以及版本信息

    在Java Version中设置最小的版本号是1.7,并删除JRE Search Sequence中的所有项---这不是一般的常见的配置方式,因为打包Javafx本身就不常见!它的JRE是必须要随着安装包一起走的!

    一般情况是这样子的,按照搜索的顺序选择有合适的满足最大最小条件的JRE来运行程序,这里我们不需要搜索,而是绑定前面制作好了的JRE!

    在Language中选择第一项:简体中文

    在Media File Options中设置生成的安装文件的保存路径,为了方便,我还是保存到SmartHome文件夹中,文件的名称使用默认的pattern来生成

    其他的部分保持默认即可

    image  image  

    image image

    (2)Files

    在Define Distribution Tree中点击 Installation Directory,然后选择添加文件或者文件夹,选中使用Fatjar导出的jar包和软件的logo图片,其他的默认即可

    image   image

    最终结果:一个jar,一张图片

    image

    (3)Launchers

    新建一个launch,选择 Generated launcher

    在Executable info中设置启动程序exe文件的名称:SmartHome,如果只允许一个实例运行,那么选中Allow Only a single running instance of the application

    在Icon中设置软件的icon,选中前面导入的logo

    在Java Invocation中的Class Path中导入前面的jar包,并指定Main Class

    其他部分保持默认即可

    image     image           20120717142339     image   

    image       image

    (4)Installer

    全部保持默认

    (5)Media

    新建Media File,选择Installer,并且type是windows

    在Configure installer options中设置安装到客户机子上的文件夹的名称,默认是shortname,我改为了编译时的变量fullName的值

    重点在Bundle JRE(绑定JRE)中,选择Bundle the following JRE,并且选择Manual entry,在后面的文本框中输入前面制作的JRE Bundle的文件名 windows-x86-1.7.0.6_jre7u6-javafx2.2 

    注意,不包含 .tar.gz, 还要注意的是这个文件是在SmartHome目录下的,也是可以找到的!详情看前面的制作介绍!

    image  image  image      image

    (6)Build

    点击Start Build,报错了,一定要在Application Info中设置一个JRE的搜索路径,由于这个JRE是静态绑定的,所以选择环境变量  sys.withJre

    它的描述中提到了如果JRE是静态绑定到media file中的,那么这个变量就是一个包含“_with_jre”的变量,否则就是空字符串

    image      20120717150100     

    配置好了之后就重新Start Build,最终结果:

    image image

    三.安装过程

    双击生成的 smarthome_windows_1_0_0.exe 由于使用的是试用版本的install4j,所以会有一个提示窗体弹出,确定即可

    20120717161259

    然后进入安装向导:

    (1)

    image

    (2)

    image

    (3)

    image

    (4)

    image

    (5)

    image

    (6)

    image

    至此就安装好了,开始菜单可以看到,点击运行即可,一开始也会有一个install4j的提示,确定即可

    image

    登陆界面:

    image

    主界面:

    image

    至此,就结束啦!O(∩_∩)O哈哈哈~   Enjoy the world of JavaFx !

  • 相关阅读:
    登录注册测试用例
    礼盒抽奖测试点
    jmeter性能测试
    selenium的常用API及案例演示
    jmeter+ant+jenkins接口自动化测试框架
    开源性能测试工具jmeter
    Jmeter响应断言,性能测试,定时器,cookie
    Charles的介绍,配置与使用
    异常捕获以及文件的相关操作
    函数封装及面向对象
  • 原文地址:https://www.cnblogs.com/yinger/p/2595265.html
Copyright © 2011-2022 走看看