zoukankan      html  css  js  c++  java
  • IDEA通过Maven打包JavaFX工程(OpenJFX11)

    1 概述

    最近研究JFX,写出来了但是打包不了,这。。。尴尬。。。
    IDEA的文档说只支持Java8打成jar包:
    在这里插入图片描述
    尝试过直接使用Maven插件的package,不行,也尝试过Build Artifacts,也不行,各种奇奇怪怪的问题。包括下图中的

    Error....fx:deploy is not available in this JDK
    

    不过幸好文档末尾提到可以使用一些第三方工具
    在这里插入图片描述
    因此记录一下使用IDEA打包JFX11工程的过程。

    2 环境

    • IDEA 2020.1
    • OpenJDK 11
    • OpenJFX 11

    只需安装IDEA与JDK即可,JFX可以在pom.xml中引入。

    3 创建工程

    选择Maven,选择Create from archetype,然后Add Archetype并填上GroupId:

    org.openjfx
    

    与ArtifactId:

    javafx-maven-archetypes
    

    还有version:

    0.0.1
    

    在这里插入图片描述
    下一步自定义,这里为了方便就直接默认了。
    在这里插入图片描述
    然后修改archetypeArtifactId为

    javafx-archetype-fxml
    

    在这里插入图片描述
    完成即可。

    4 检查文件

    Maven同步完后,检查项目目录下的module-info.java与pom.xml,其中pom.xml不应该是下图这样的:
    在这里插入图片描述
    而应该是这样的,包含了javafx.controls与javafx.fxml依赖,还有javafx-maven-plugin插件:
    在这里插入图片描述
    同时src下的module-info.java应该长这样:
    在这里插入图片描述
    module-info.java包含了所需要的javafx.controls与javafx.fxml这两个模块。

    5 修改插件依赖

    默认的javafx-maven-plugin版本应该为0.0.1:
    在这里插入图片描述
    整个去掉,修改为:

    <plugin>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-maven-plugin</artifactId>
        <version>0.0.4</version>
        <configuration>
            <stripDebug>true</stripDebug>
            <compress>2</compress>
            <noHeaderFiles>true</noHeaderFiles>
            <noManPages>true</noManPages>
            <launcher>launcher</launcher>
            <jlinkImageName>output</jlinkImageName>
            <jlinkZipName>outputzip</jlinkZipName>
            <mainClass>org.openjfx.App</mainClass>
        </configuration>
    </plugin>
    

    其中launcher为可执行文件名,jlinkImageName为Image输出目录名,jlinkZipName为zip文件名,mainClass为主类。

    6 运行并打包

    从右侧栏的Maven通过javafx插件运行并打包:
    在这里插入图片描述
    在这里插入图片描述

    7 测试

    根据修改插件时的目录,进入对应的target下的子目录直接运行即可:

    项目目录/target/output/bin/launcher
    

    注意这个是跨平台的,只需具备JDK11环境即可,发布只需要把zip文件发布。

    8 demo

    9 扩展阅读

    这篇文章是OpenJFX的文档,主要介绍了:

    • 通过三种方式(JFX+Maven+Gradle)运行Hello World
    • 构建运行镜像(CLI+Maven+Gradle+自定义镜像)
    • IntelliJ/NetBeans/Eclipse通过三种方式(IDE自身+Maven+Gradle)运行与打包JFX

    链接戳这里

  • 相关阅读:
    各类Http请求状态(status)及其含义 速查列表 xmlhttp status
    Microsoft Visual Studio 2010 正式版下载[含旗舰版序列号](中、英文版)
    【分享】开源或免费的ASP.NET web应用列表
    线程间操作无效: 从不是创建控件“Control Name'”的线程访问它问题的解决方案及原理分析
    Asp.Net中多语言的实现
    Oracle 数字与空值的排序问题
    新版微软一站式示例代码库 6月2日更新下载。
    .NET反射机制简介
    Decimal与double类型误差
    用动态菜单增强.NET应用程序
  • 原文地址:https://www.cnblogs.com/6b7b5fc3/p/12990161.html
Copyright © 2011-2022 走看看