创建JavaFX项目并用Maven打包
一、安装javafx_scenebuilder
从这里下载https://www.oracle.com/java/technologies/javafxscenebuilder-1x-archive-downloads.html
下载最新版的Scene Builder
二、配置IDEA
快捷键Ctrl+Alt+S 进入设置页面
打开Languages & Frameworks 配置JavaFX
设置SceneBuilder路径
三、新建JavaFX项目
以上就创建了一个JavaFX项目,fxml文件可以用SceneBuilder打开,进行设置
四、转换为Maven项目
项目上右击,点击 Add Framework Support
Maven上打勾就行了
出来这个,就点一下Enable Auto-Import,点一下又不会少块肉。
下面是转换后的结构
但是,在Maven中,资源和代码是分开的,我们必须将fxml放入到resources中
resources中要新建文件夹,文件夹结构要和包名一致,这样生成jar包后,class和fxml文件就会在同一包下
下面这个getResouce使用相对路径
运行没问题
五、Maven打包
<build>
<plugins>
<!-- 项目依赖插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<outputDirectory>${project.build.directory}/libs</outputDirectory>
<excludeTransitive>false</excludeTransitive> <!-- 表示是否不包含间接依赖的包 -->
<stripVersion>false</stripVersion> <!-- 去除版本信息 -->
</configuration>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!-- 拷贝项目依赖包到libs/目录下 -->
<outputDirectory>${project.build.directory}/install/libs</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>false</stripVersion>
</configuration>
</execution>
</executions>
</plugin>
<!-- 设置jar的入口类 -->
<!-- 打包插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<!-- 生成MANIFEST.MF的设置 -->
<manifest>
<!-- 为依赖包添加路径, 这些路径会写在MANIFEST文件的Class-Path下 -->
<addClasspath>true</addClasspath>
<classpathPrefix>libs/</classpathPrefix>
<!-- jar启动入口类,这个需要修改-->
<mainClass>sample.Main</mainClass>
</manifest>
</archive>
<outputDirectory>${project.build.directory}/install</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
最后install一下,进行打包生成
生成后的install目录下的jar文件就可以直接双击打开