Idea+maven-jar-plugin构建JavaFX可执行jar包

简介: Idea+maven-jar-plugin构建JavaFX可执行jar包

项目结构

.
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── pengshiyu
    │   │           ├── Controller.java
    │   │           └── Main.java
    │   └── resources
    │       ├── fxml
    │       │   └── sample.fxml
    │       └── style
    │           └── main.css
    └── test
        └── java

pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<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>org.example</groupId>
<artifactId>demo</artifactId>
<version>1.0-SNAPSHOT</version>
<build>

<plugins>
<!-- 运行javaFX-->
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.8.3</version>
<configuration>
<mainClass>com.pengshiyu.Main</mainClass>
</configuration>
</plugin>

<!-- 构建javaFX成jar-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<archive>
<manifest>
<!-- 指定程序入口-->
<mainClass>com.pengshiyu.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>

</plugins>
</build>
</project>

src/main/java/com/pengshiyu/Main.java

package com.pengshiyu;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {

@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("/fxml/sample.fxml"));
primaryStage.setTitle("Demo");
primaryStage.setScene(new Scene(root, 600, 600));
primaryStage.show();
}


public static void main(String[] args) {
launch(args);
}
}

src/main/java/com/pengshiyu/Controller.java

package com.pengshiyu;

import javafx.scene.control.Label;

public class Controller {
public Label label;

public void clickButton(){
label.setText("按钮被点击了");
System.out.println("按钮被点击了");
}
}

src/main/resources/fxml/sample.fxml

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>

<GridPane fx:controller="com.pengshiyu.Controller"
stylesheets="/style/main.css"
xmlns:fx="http://javafx.com/fxml";
alignment="center" hgap="10" vgap="10">

<Button mnemonicParsing="false" onAction="#clickButton" text="按钮" />

<Label fx:id="label" layoutX="10"/>

</GridPane>

src/main/resources/style/main.css

.label{
-fx-text-fill: red;
}

指令

# 运行程序
mvn clean jfx:run

# 生成jar文件
mvn package

项目截图

项目截图.png

参考

  1. JavaFX基础:2:使用javafx-maven-plugin管理JavaFX应用
  2. JavaFX基础:3:使用maven-jar-plugin生成用于执行jar文件
            </div>
目录
相关文章
|
15天前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
30 1
|
Java 应用服务中间件 Maven
09Maven - 构建maven工程(Eclipse)
09Maven - 构建maven工程(Eclipse)
44 0
|
Java 测试技术 Maven
10Maven - Eclipse下使用maven命令
10Maven - Eclipse下使用maven命令
87 0
|
Java 应用服务中间件 Maven
解决Maven Web工程,用Eclipse导出War时,没有Lib的问题
解决Maven Web工程,用Eclipse导出War时,没有Lib的问题
144 0
|
Java Maven
使用IDEA创建基于maven的javaFX项目并使用Artifacts打包成jar
使用IDEA创建基于maven的javaFX项目并使用Artifacts打包成jar
315 0
使用IDEA创建基于maven的javaFX项目并使用Artifacts打包成jar
|
Java
Idea+maven-jar-plugin构建JavaFX可执行jar包
Idea+maven-jar-plugin构建JavaFX可执行jar包
101 0
Idea+maven-jar-plugin构建JavaFX可执行jar包
|
Java Maven
JavaFx使用maven-jar-plugin打成jar包
JavaFx使用maven-jar-plugin打成jar包
302 0
JavaFx使用maven-jar-plugin打成jar包
|
Java Apache Maven
如何在Maven中构建SWT/JFace应用并打包成可执行的jar包
前面在Maven中构建SWT应用的时候发现SWT相关jar包在Maven中央仓库上找不到,后面在stackoverflow上有人提供了一个仓库地址:https://github.com/maven-eclipse/maven-eclipse.github.io。 根据上面所说,SWT相关依赖在Maven中央仓库中不可取,目前存在的Maven仓库不包括所有平台的包,也没有源码和debug包,总之就是没有提供可信赖和自动化的方式更新和仓库再生,而Redirecting...这个仓库会自动下载并打包官方的SWT发布版本。
|
Java Maven
IntelliJ IDEA - Maven 自带 Bundled (Maven 2) 和 Bundled (Maven 3) 的文件目录位置
IntelliJ IDEA - Maven 自带 Bundled (Maven 2) 和 Bundled (Maven 3) 的文件目录位置
2342 0

推荐镜像

更多
下一篇
无影云桌面