javafx项目打包

javafx项目打包

之前在eclipse中写了javafx项目,后来为了导出为安装包,总是出现各种问题,在网上看了许多博客,总是不完整或者有些地方觉得不清楚的,所以在这里总结一下,避免以后踩坑。这里用一个简单的加法项目进行演示,利用按钮的图标作为项目需要引用的资源。

在eclipse中配置javafx

javafx是集成在jdk18及之下版本的,但是从jdk10之后,javafx作为独立的模块从java核心包中被分离了出来。也就是说,对于jdk10之后的版本,是不能直接运行javafx的代码的,只能导入javafx的依赖包才可以,对于jdk1.8及之前的版本,都是直接集成可直接运行的。但是,在eclipse中,虽然可以直接运行javafx代码,但是如果没有进行配置,需要一行一行的手动输入代码,就如同web项目中的servlet一样,对于Eclipse ee,可以直接新建servlet,在新建的servlet中,会自动生成doGet和doPost代码,同样也可以直接新建java文件,手动输入doGet和doPost方法。所以在eclipse中配置javafx还是有必要的。这个只需要在eclipse中安装插件即可,详见博客在Eclipse中安装e(fx)lipse (JavaFX工具)。

打包javafx

在写代码的过程中,记得尽量避免使用绝对路径,因为如果打包后的软件放到其他环境后,可能因找不到相关以来导致无法运行。

打包javafx可分为以下几个部分:
  • 打包为jar包
  • 转化为exe
  • 转化为安装包

打包为jar包

要打包javafx项目,首先需要将该项目转化为一个可运行的jar包。具体步骤如下:

  • 在配置了javafx的eclipse中,新建的javafx项目下会有一个build.fxbuild文件(如果不是新建的javafx项目,则没有,没有的话可以再新建一个,然后将新建后得到的build.fxbuild文件拷贝到你要打包的项目目录下),双击后,得到下面的界面。
    javafx项目打包_第1张图片
    在build.fxbuild文件中,需要设置如上图所示。在前面六步都设置完成后,第七步选择Gernerate ant build.xml only,这里有两点需要说明。
  1. eclipse的默认编译环境需要设置为jdk而不是jre,经亲测,jre是无法正常运行的,只有jdk可以。具体设置方法如下:
    javafx项目打包_第2张图片
    点击这里进入eclipse的设置界面
    javafx项目打包_第3张图片
    点击这里设置默认的jre,将jdk设置为默认即可。
  2. 为什么不能点击ant build.xml and run,因为如果直接运行,就无法将项目所需要的依赖添加进打包之后的jar包中。
    在ant build.xml后,在工程目录下面会自动生成一个build文件夹,下面有一个build.xml文件。如果需要添加资源,就进行下一步,如果不需要,直接跳过下一步即可。
    javafx项目打包_第4张图片
  • 添加项目相关资源
    如果没有需要添加的资源,跳过这一步。在build目录下面新建一个dist\resources子目录,然后将需要的资源拷贝进去。比如我这里需要的是icons文件夹,目录树如下:
    javafx项目打包_第5张图片
  • 配置build.xml
    在添加完资源文件后,还需要对build.xml进行配置,这样打包得到的jar文件才能正确的找到所需要的资源。
    首先,添加一行到${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">
	<fx:filesetdir="dist" includes="FxPackage.jar"/>
	<fx:fileset dir="dist" includes="libs/*"/>
	<fx:fileset dir="dist" includes="resources/*"/>
</fx:resources>

添加完成后,运行build.xml,如下图,选择第一个,即可在dist文件夹下得到可运行的jar包。在资源管理器中运行jar包检验是否可以正常运行。javafx项目打包_第6张图片

将jar包转化为exe

通过前面的步骤,我们已经将项目转化为了可执行的jar包,接下来我们还需要将jar包转换为可执行的exe文件。这里我们需要用的exe4j这个软件,具体的安装教程见链接exe4j安装及注册教程。安装完成后,按以下步骤进行操作。

  • 选择模式javafx项目打包_第7张图片
    这一步选择打包模式,regular模式即为常规模式,在添加依赖时可以选择整个目录添加,第二种模式不能添加整个目录,只能单个单个的选择jar包,这里我使用第二种模式。
  • 输入信息javafx项目打包_第8张图片
    这里第一个空是填写项目简称,随便填写一个即可,第二个是输出的路径。
    javafx项目打包_第9张图片
    一位生成的exe文件的名称,二位生成的exe图标(注意这个图标只能是ico文件,不能是png或者ipg之类的格式)。
    javafx项目打包_第10张图片
    然后点击advanced Options,选择32-bit or 64-bit,否则的话生成的是32位的exe,在64位的操作系统上面是无法运行的。接下来一路默认,直到这一步。
    javafx项目打包_第11张图片
    在这一步添加项目依赖的包,如果在这里添加之后,可以在原路径中删除掉,因为这里相当于将添加的内容集成到exe中了。点击右边的加号,然后选择你刚才生成的jar文件(如果有其他依赖的jar包也需要在这里添加)。添加完成后,点击下面的main class,添加工程入口,如图为我这个例子的结果。
    javafx项目打包_第12张图片
    然后点击advanced options添加相关目录,这个相关目录不会集成在exe中,所以不能删掉,dll文件只能放在这里(例如dll文件最好放在一个文件夹中,然后添加,见下图)。
    javafx项目打包_第13张图片
    jre选择如下图所示,有1.8即可。然后选择advanced options添加生成的exe如何寻找jre,一般是在生成的exe目录下新建一个jre文件夹,然后将jre1.8拷贝过去。
    javafx项目打包_第14张图片
    javafx项目打包_第15张图片
    我的目录结构是这样的,这样,软降在运行时,就可以直接找到jre环境,无需电脑上都配置jdk即可运行。
    javafx项目打包_第16张图片
    后面的都默认选择即可,得到下面的exe文件:
    javafx项目打包_第17张图片
    再测试下是否可以正常运行exe,因为exe中已经整合了生成的jar,所以这里将jar删除也是不影响的。

转化为安装包

这里我们需要使用到的打包为安装包的软件是inno setup,可以直接下载安装,比较简单就不用说了。下面介绍将exe转化为安装包的步骤。
打开软件,选择第二个选项,在指引下完成。
javafx项目打包_第18张图片
依次填写项目名称、版本、发行者即项目网站等基本信息。
javafx项目打包_第19张图片
设置生成的文件夹名称。
javafx项目打包_第20张图片
添加刚才生成的exe文件,以及exe需要用的到的相关文件夹,这些文件夹都会在安装后生成在安装目录下面。
javafx项目打包_第21张图片
接下来一路默认,下面这个界面有就填写没有可以跳过。javafx项目打包_第22张图片
接下来输入一些生成文件的信息,1为安装包的输出路径,2为安装包的名称,3为安装包的图标,4为安装密码,不输入则为无。
javafx项目打包_第23张图片
然后默认完成即可。最后在生成得到的iss文件中,修改生成文件的路径,如果不修改的话,则所有子文件都会直接解压到根目录下面,修改前后对比图如下。
在这里插入图片描述
修改完成后,运行即可得到安装文件,至此,打包工作就结束了,将安装包发到任意电脑上即可运行。
javafx项目打包_第24张图片

你可能感兴趣的:(Java)