Java11 & JavaFX 初体验 - Java 代码生成 Markdown 的小工具

概述

Java 11 自 2018.9.25 发布以来,已经好几个月了,在还没正式 GA 之前都习惯性的去 java-countdown.xyz check 发布倒计时。Java 11 有比较多的新功能,而其中最吸引我的

  • Java 11 是 LTS 版本
    • 这意味着体验 Java9 带来的模块特性变得更有意义
  • JavaFX 从 JDK 中移除,作为独立模块

在 11 发布时,JavaFX 也发布了 11 的 GA 版本。JavaFX 本身并不新奇,但自 Java9 模块化后,JavaFX 得益于 jlink 的能力,能够将 JavaFX 封装为独立的 GUI 应用,不要求安装JDK 。这使得在桌面应用开发的场景,除了 Electron、Mono、QT 等跨平台开发框架,Java 也能作为其中的一项选择了。在 Swing 时代,Java的桌面应用开发体验也不差(曾经做过的小游戏 wenerme/GTetris),但由于累赘的 JDK (大约 150m)使得开发一个小应用变得不切实际。

JLink 可以将项目依赖的模块加上基础VM来生成一个新的 JDK,应用的体积能够大大减小,如果还能再配合 progard,那体积还能再缩小一圈。

Motivation

基于体验 Java11 和 JavaFX 的前提(每个Java程序员都会写界面是常识?),将生成 奥格人群服务化接口文档 的生成器做成了一个 GUI 工具,源码在 wener.cyw/tools

工具下载地址见附件 - 只打包了 Mac 版应用,因为没有 Windows。

安装

从 Java 11 开始,Oracle 的 JDK 便不再建议使用了,因此首选 OpenJDK,而 OpenJDK 的二进制提供方也有不少,在这里推荐使用 adoptopenjdk,与 Oracle 不同的是,在这里下载的 JDK 都是压缩包,无须安装,解压就能使用,当然也不会有自动更新的能力。

点击前往下载

下载后我解压到了 ~/jdk 目录,然后建立软连接 ~/jdk/11 指向到了该版本。

开发

总结一下在整个过程中遇到的问题

  1. 项目搭建 - 10%
  2. 应用开发 - 20%
  3. 生成 JDK - 非模块依赖转模块依赖 - 50%
  4. 应用打包 - 20%

项目搭建

搭建一个 Java 11 的 Maven 项目与搭建一个普通的项目区别并不大,只是会多一些配置,并且所有的依赖都需要使用最新的。

父 POM 的 build/plugins 配置说明

<!-- 对 Java 11 持有基本的尊敬 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <release>11</release>
        <source>11</source>
        <target>11</target>
    </configuration>
</plugin>

<!-- 打包时打包到 modules 目录 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.1.0</version>
    <configuration>
        <outputDirectory>
            ${project.build.directory}/modules
        </outputDirectory>
    </configuration>
</plugin>
<!-- 将依赖拷贝到 modules 目录 -->
<plugin>
    <groupId
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值