最近在学javafx,为了保证自己的学习质量,特将学习到的东西进行整理。
特此说明:如有雷同,纯属我抄你;告诉我,我就删。
特此说明:我不是BUG创造者,我只是BUG的搬运工。
用过C#写过一套桌面程序,也想过用Delphi或者其他的语言写桌面。比如一些比较火的用前端编写,然后实际上是外包装上放一个浏览器的替换做法,还有Python和QT的结合写。
目前选择了用JavaFX来学习,主要解决了我的几个痛点:
- 跨平台。
- 组件既可拖拽、也可手写。JDK封装的还是很不错的,组件功能强大。
- 样式表,样式表,样式表。居然可以用CSS来写样式,有什么比这个更爽的。
学完Application、学完Stage之后。急火攻心的我当然想要尝试一下编译然后去运行一下试试。
一、环境配置
官网上已经有一个推荐的好方法。JavaPackager,但是使用JavaPackager之前,需要提前安装好几个东西
1.inno setup。最早在1997年就发布了,现在一直更新着,非常好的免费一个windows安装程序制作器。安装完成之后,需要将安装路径添加至环境变量Path中。
这个主要是为了“iscc”这个命令行能够执行
第一步官网下载,必须是inno setup6.0以上版本,最新版本最好。(我起初用5.5版本,一直报错,好像是对iss文件的解析6.0有了新的方式)
第二步,本地安装,安装路径随意。
第三步,配置环境变量。
然后将inno setup的安装路径填进去。
2.WiX Toolset。一组最强大的工具集来帮助你创建 Windows 安装包。
这个主要是为了“candle”和"light"两个命令行能够执行
第一步,官网下载,最新版本最好,因为安装包是在github上,有时候网络不好,下载有点慢。
第二步,本地安装,好像没有选择安装路径的样子,反正我是默认安装在了C盘。在C:Program Files (x86)WiX Toolset v3.11bin上,每个人的也许有不同。
第三步,配置环境变量,方法同上。
二、maven配置文件
JavaPackager本次使用的JavaFX官网推荐的。详情可查看JavaPackager
首先,项目要添加maven。
其次,在pom.xml中按照以下案例填写。
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.github.fvarrui</groupId>
<artifactId>HelloWorld</artifactId>
<version>1.0.0</version>
<properties>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.source>8</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<exec.mainClass>io.github.fvarrui.helloworld.Main</exec.mainClass>
</properties>
<licenses>
<license>
<name>GPL-v3.0</name>
<url>http://www.gnu.org/licenses/gpl-3.0.tx</url>
</license>
</licenses>
<build>
<plugins>
<plugin>
<groupId>io.github.fvarrui</groupId>
<artifactId>javapackager</artifactId>
<version>1.2.0-SNAPSHOT</version>
<configuration>
<bundleJre>true</bundleJre>
<additionalResources>
<additionalResource>info.txt</additionalResource>
</additionalResources>
<generateInstaller>false</generateInstaller>
<createZipball>false</createZipball>
<createTarball>false</createTarball>
</configuration>
<executions>
<execution>
<id>package-for-mac</id>
<phase>package</phase>
<goals>
<goal>package</goal>
</goals>
<configuration>
<platform>mac</platform>
<jdkPath>C:UsersfvarruiGitHubjdksadoptopenjdkjdk-13.0.2+8-mac</jdkPath>
</configuration>
</execution>
<execution>
<id>package-for-linux</id>
<phase>package</phase>
<goals>
<goal>package</goal>
</goals>
<configuration>
<platform>linux</platform>
<jdkPath>C:UsersfvarruiGitHubjdksadoptopenjdkjdk-13.0.2+8-linux</jdkPath>
</configuration>
</execution>
<execution>
<id>package-for-windows</id>
<phase>package</phase>
<goals>
<goal>package</goal>
</goals>
<configuration>
<platform>windows</platform>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>com.cedarsoft.commons</groupId>
<artifactId>collections</artifactId>
<version>8.1.1</version>
</dependency>
<dependency>
<groupId>ai.djl.hadoop</groupId>
<artifactId>hadoop</artifactId>
<version>0.7.0</version>
</dependency>
</dependencies>
</project>
然后调出terminal控制台,输入mvn package
静静等待。最后就可以看到这里面就有很多好东西了
我不是BUG创造者,我只是BUG的搬运工。