Idea-maven项目创建及javafx运行案例

2023-10-27

Idea-maven项目创建及javafx运行案例

maven项目创建

创建一个普通项目,构建系统使用Maven
在这里插入图片描述
项目结构应该是这样的
在这里插入图片描述
src下面有main和test

main下面有java和resources

test下面有java和test resources

test resources没有自动创建,为了完善项目结构一会手动创建一个

最关键的pom.xml文件初始化是这样的
在这里插入图片描述
之后要根据项目的需要进行pom.xml文件的配置

学习maven就是学习怎么配置pom.xml文件

maven + javafx项目配置

想创建一个javafx项目

首先先把可能要添加的依赖理清楚

首先在pom.xml中添加关于javafx的依赖项

因为javafx中可能用到javafx.fxml, 所以也要添加javafx.fxml的依赖

可能之后要连接数据库, 所以要添加mysql-connector-java的依赖

配置pom.xml文件

在添加之前, 要对pom文件的结构进行了解

可以格式化文档之后查看主次结构

以我这次配置的pom.xml文件为例

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

<!-- project是最高级 -->
<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>groupId</groupId>
    <artifactId>fx1</artifactId>
    <version>1.0-SNAPSHOT</version>
    
    <!-- 依赖项添加 -->
    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>17.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>17.0.1</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>
    </dependencies>

    <!-- 构建项 -->
    <build>
        <!-- 添加插件 -->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <!--                    <release>8</release>-->
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.3</version>
                <configuration>
                    <mainClass>sample.Main</mainClass>
                </configuration>
            </plugin>
        </plugins>

        <!--这我不知道是啥 之后查查-->
<!--        <resources>-->
<!--            <resource>-->
<!--                &lt;!&ndash; 这里是放在 src/main/java&ndash;&gt;-->
<!--                <directory>src/main/java</directory>-->
<!--                <includes>-->
<!--                    <include>**/*.properties</include>-->
<!--                    <include>**/*.fxml</include>-->
<!--                    <include>**/fxml/*.fxml</include>-->
<!--                    &lt;!&ndash; 如果想要弄个包名专门放fxml文件,像上一行这样添加设置 &ndash;&gt;-->
<!--                    &lt;!&ndash; 之后,使用getResource("fxml/xx.fxml")这样子 &ndash;&gt;-->
<!--                </includes>-->
<!--                <filtering>false</filtering>-->
<!--            </resource>-->
<!--        </resources>-->

    </build>

</project>

依赖dependency是添加在dependencies中的

<>代表开始

</>代表结束

在这里插入图片描述
在pom.xml文件中使用alt+insert快捷键添加依赖项模板

将上面觉得可能要用到的依赖项添加进去

添加的时候有一个麻烦的点,要根据自己使用的软件的版本来说明依赖包的版本

比如上述依赖管理中,来自org.openjfx公司的javafx-controls依赖包和javafx-fxml依赖包就需要明确知道自己使用的jdk的版本,从而写明这两个依赖包的版本

来自mysql公司的mysql-connector-java依赖包就需要明确知道自己的mysql的版本,从而写明这个连接依赖包的版本

所以要去cmd中查看自己一些软件的版本

但是在idea中有小技巧,先填写依赖包的名称,然后在填写另外两个时候先按空格,idea就会自动显示一些版本,有可能准确有可能不准确(比如我的mysql版本是8,但是idea给我显示的链接依赖包的版本就只有5的),如果不准确要自己查询,然后输进去

一旦涉及到版本,就有可能出现软件之间的软件版本不对应的问题,比如mysql8就不能用5版本的连接依赖包

​ 另外不止要添加依赖, 还要添加一些相应的插件

怎么知道要添加的插件名称我现在还不清楚

添加之后, 点击侧边栏的maven, 刷新配置文件

等待依赖项和插件下载完成, 程序就可以运行了
在这里插入图片描述
相比之前要添加好几个jar包的方式方便很多

在用到很多不同的jar包时, 更能显示出maven这个依赖管理工具的便利性


在运行javafx程序的时候, 要创建两个类, 一个app类, 一个appLaunch类, 因为运行Javafx程序要对运行组件进行检查

在maven构建下直接运行app类,会报错
在这里插入图片描述
此时要创建一个运行app类的appLaunch类, 然后运行appLaunch, 才能正常运行
在这里插入图片描述

这个appLaunch类中只要一句话就行

Application.launch(Login.class);
// 注意运行的是已经编译过的class文件

但是与此同时还是有一些问题没有解决,很难受:

  1. 对pom.xml文件的详细配置还是不太清楚,可能每一次配置都要经过一大堆的搜索和试错,要继续看一些关于pom文件的文档
  2. 对pom.xml文件中怎么搜寻相关需要的插件不清楚,就像这次案例,依赖项可以知道,但是有些插件不知道怎么获取,另外关于为什么要用到这些插件才能运行也不清楚
  3. 为什么在maven构建下不能直接运行javafx的程序,必须要另外创建一个运行类;就像vscode中直接运行c/c++程序会出现运行窗口闪退,必须要加上一句system(“pause”);
  4. 今天累了,先摸索到这,剩下的时间看一看数据结构,明天准备做助教

全部解决

以上的问题纯粹是因为我新建的是普通项目,而不是Java FX项目,如果新建的是Java FX项目,那么idea会自动给你生成相应的需要的pom.xml文件,并且运行也是正常的
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Idea-maven项目创建及javafx运行案例 的相关文章

随机推荐

  • Android studio开发Flutter常用插件

    Flutter 安装 Flutter 和 Flutter Snippets 设置中文 插件下载地址 看一下你的andio studio 是什么版本 下载插件时需要对应 下载完后 导入插件 重启 成功 CodeGlance Pro 代码缩略图
  • Flutter 中的同步与异步,我的Android美团求职之路

    Future error 创建一个执行结果为error的future factory Future error Object error StackTrace stackTrace return new Future immediateEr
  • OpenCV教程——OpenCV环境配置及第一个测试代码

    1 OpenCV简介 OpenCV是一个计算机视觉的开源库 英文全称是 Open Source Computer Vision Library 常用的OpenCV的核心模块 Image Process Camera Calibration
  • vulnhub Pwned: 1

    渗透思路 nmap扫描端口 gobuster扫描网站目录 burp爆破网站目录 网站源代码泄露ftp用户名密码 ariana用户用id rsa进行ssh登录 sudo bash脚本提权到selena 利用docker越权查看文件 环境信息
  • AttributeError: ‘builtin_function_or_method‘ object has no attribute ‘view‘解决办法

    1 问题陈述 今天在使用pytorch中的view方法 改变张量形状时 发生错误 AttributeError builtin function or method object has no attribute view 报错提示 Att
  • 将Spring Boot打包成一个可执行的jar

    创建一个可执行jar 让我们通过创建一个完全自包含的可执行jar文件来结束我们的示例 该jar文件可以在生产环境运行 可执行jars 有时候被成为胖jars fat jars 是包含你的编译后的类和你的代码运行所需的依赖jar的存档 可执行
  • ubuntu18.04 天选2 R95900hx 3060显卡驱动安装

    天选2 R95900hx 3060显卡驱动安装 需求 问题 解决 内核 集显 显卡驱动 需求 外接显示器 安装nvidia驱动 问题 由于一开始直接在软件和更新中附加驱动安装了nvidia 470 导致系统黑屏 解决 grub页面系统选择进
  • 手机解除移动宽带屏蔽_FANUC/三菱M70系统如何屏蔽伺服轴?

    有时为了调试方便和操作方便需要 需将伺服脱开或电机脱开 比如 在拆除四轴时 屏蔽相关的一些报警就可以通过参数屏蔽伺服轴 在维修电机或拆卸工作台时 需要将电机或工作台拆下时 就可以通过参数屏蔽相关的报警 其他轴不受拆除轴的影响还可正常移动运转
  • QT DAY1

    做一个窗口界面 include mainwindow h include ui mainwindow h MainWindow MainWindow QWidget parent QMainWindow parent ui new Ui M
  • CSDN专家博客网址

    CSDN Blog 所有专家 分类 业界 软件工程 项目管理 NET JAVA Delphi C C WEB开发 数据库 移动开发 开源 游戏开发 企业开发 工具 产品 综合 网络管理 IT媒体 云计算 业界蒋涛 周筠 芮祥麟 余平 陈荣华
  • iPhone 各屏幕尺寸及解析

    一 iPhone 各屏幕尺寸表 手机型号 屏幕尺寸 inch 像素密度 PPI 逻辑分辨率 point 物理分辨率 屏幕分辨率 pixel 缩放因子 scale factor 宽高比 近似 比例 近似 3GS 3 5 inch 163 pp
  • 如何用API函数获取网卡或硬盘的序列号

    转自 https zhidao baidu com question 502153566675093684 html include
  • 使用.NET中的XML注释(一) -- XML注释标签讲解

    一 摘要 Net允许开发人员在源代码中插入XML注释 这在多人协作开发的时候显得特别有用 C 解析器可以把代码文件中的这些XML标记提取出来 并作进一步的处理为外部文档 这篇文章将展示如何使用这些XML注释 在项目开发中 很多人并不乐意写繁
  • 网络协议有哪些?

    除了TCP IP协议以外 还有很多其他的网络协议 1 HTTP 超文本传输协议 用于在Web浏览器和Web服务器之间传输数据 2 FTP 文件传输协议 用于在不同计算机之间传输文件 3 SMTP 简单邮件传输协议 用于在不同计算机之间传输电
  • 5-1:什么是Servlet-开发你的第一个动态网站

    4 1 JavaWeb开发环境 1 安装IDEA 2 IDEA配置tomcat9 MAC版 兄弟们 这一章的内容我录制了一个视频 可以观看一下 5 1 什么是Servlet 开发你的第一个动态网站 本节内容配套视频 https www bi
  • 当下流行的 Web 编程语言都有哪些?

    如果你是一名新晋的 Web 开发人员 那么在选择最佳 Web 编程语言时将面临很多困难 不同的编程语言支持不同的编程技术 而且各有各的复杂性 此外 新的编程语言层出不穷 让人看得眼花缭乱 在本文中 我们将列出一些最适合 Web 开发的编程语
  • 总结之java代码规范(一)——注释规范、IDEA类和方法注释模板设置

    最近新团队需要需要整一套适合java代码规范 基于阿里java开发手册规范一下代码规范 一 注释要求 1 强制 类 类属性 类方法的注释必须使用javadoc规范 使用 内容 格式 不得使用 xxx方式 2 强制 所有的抽象方法 包括接口中
  • 掩码语言模型(Masked Language Model)mlm

    https www cnblogs com anai p 11645953 html bert 论文 从语言模型到Seq2Seq Transformer如戏 全靠Mask https zhuanlan zhihu com p 6910608
  • 目标检测+光流跟踪

    最近学习了LK光流法 主要用于运动目标的跟踪 于是想着和之前codebook运动目标检测结合起来 实现先检测再跟踪 下面介绍目标检测跟踪流程 1 使用codebook进行背景学习 2 使用codebook不断进行运动目标检测 3 若发现运动
  • Idea-maven项目创建及javafx运行案例

    Idea maven项目创建及javafx运行案例 文章目录 Idea maven项目创建及javafx运行案例 maven项目创建 maven javafx项目配置 首先先把可能要添加的依赖理清楚 配置pom xml文件 但是与此同时还是