Idea+Maven部署打包JavaFX项目遇到的坑
用Idea写了一个JavaFX项目,创建artifacts,build artifacts,运行build出来的exe可执行文件时总是遇到 class not found的错误,如下图

一开始根据提示以为是class路径没设置好,但怎么改都是一样的错误,网上也搜不到跟我遇到同样问题的人。
后来新建了个JavaFX项目,不用Maven,发现可以正常部署,可以找到Main类。
最后两个项目之间一点点地修改,一点点地比对,发现问题出在静态属性的定义并初始化上,比如下面代码中有四个静态属性并且都在类加载时进行初始化
控制变量法式地测试发现,单纯定义了静态属性的话,没有问题可以找到Main类,但如果在定义语句后面初始化赋值,就会导致上面图中的class not found的错误
public class Main extends Application {
private Logger logger = LoggerFactory.getLogger(Main.class);
private Stage primaryStage;
private BorderPane rootLayout;
private SoundService soundService = new SoundService();
private static Image fileIcon = new Image(Main.class.getResource("/images/iconfinder_icon-55-document-text_315178.png").toString(), 16, 16, true, true);
private static Image folderIcon = new Image(Main.class.getResource("/images/iconfinder_icon-94-folder_314778.png").toString(), 16, 16, true, true);
private static Image musicIcon = new Image(Main.class.getResource("/images/iconfinder_icon-63-document-music_315187.png").toString(), 16, 16, true, true);
private static Image audioMediaIcon = new Image(Main.class.getResource("/images/iconfinder_multimedia-44_2849792.png").toString(), 16, 16, true, true);
/*
其余无关代码
*/
}
Idea+Maven部署打包JavaFX项目遇到的坑的更多相关文章
- Maven package打包webapp项目遇到的问题
环境Java: JDK_1.7.0_79Eclipse: Mars(4.5.0)Maven: 3.3.3最近公司同事重构某Java web项目,完成之后发现部署启动总是不成功 Caused by: o ...
- 不使用IDE,用maven命令打包war项目及出现的问题解决(最全攻略,亲测有效)
第一次在博客园写博客,写的不好大家见谅啊!! 一.首先,在用maven打包之前,一定确认好你使用的jdk版本和maven的版本,最好就是用jdk1.8和maven3.3以上的,版本太低了容易出现一些意 ...
- 分享知识-快乐自己:IDEA下maven编译打包Java项目成jar包但是resource下配置文件无法编译
今天在写分布式项目的时候,一直无法编译 resource 下的配置文件:(在target文件夹下的 classes文件查看是否编译) 最后只能通过在POM文件中配置resources配置 得以解决: ...
- 关于Maven中打包命令(项目中打补丁的时候用到)
打jar包的方式 mvn package -Dmaven.test.skip=true mvn install -Dmaven.test.skip=true ...
- 打包spring项目遇到的坑 Unable to locate Spring NamespaceHandler for XML schema ……shcema/context 产生的原因及解决方法
图1 图2 问题原因:导致该问题的原因就是打包的时候,同时将 spring-context 和 spring-aop包提取到了我们的程序应用的包中,在package过程中,这2个依赖包的 XML sc ...
- Ubuntu环境下使用Maven编译并打包Java项目
一.安装Maven 打开终端输入以下指令: $ mvn -v Apache Maven Maven home: /usr/share/maven Java version: 1.8.0_181, ve ...
- 使用IntelliJ IDEA和Maven构建Java web项目并打包部署
爱编程爱分享,原创文章,转载请注明出处,谢谢! http://www.cnblogs.com/fozero/p/6120375.html 一.背景 现在越来越多的人使用IntelliJ IDEA工具进 ...
- 解放双手 | Jenkins + gitlab + maven 自动打包部署项目
前言 记录 Jenkins + gitlab + maven 自动打包部署后端项目详细过程! 需求背景 不会偷懒的程序员不是好码农,传统的项目部署,有时候采用本地手动打包,再通过ssh传到服务器部署运 ...
- 在 linux 上部署并运行 JavaFX 项目
环境 redhat 6.4.eclipse安装JavaFX插件 项目详情及代码参见 在linux上配置并创建JavaFX项目 ,该部署即此文章中项目的部署 配置build.fxbuild 生成buil ...
随机推荐
- 学PHP应注意的问题与知识点
编出一手好代码,这个是需要你在平时开发中日积月累的,平时如果你有注意到以下的那些代码的编码,那么祝贺你,你在技能提升这方面已经垫下了一些基础,编写出一手好代码,说白了就是你特么注意到性能这块的问题,代 ...
- 【Java/MySql】使用JDBC访问MySql数据库的Maven工程
下载链接:https://files.cnblogs.com/files/xiandedanteng/FindNotnullColumns20191102-1.rar pom.xml里写: <p ...
- 【SpringBoot】整体下载大文件与分批下载大文件(利用MySql数据库的Limit实现)
在前文里谈过一次性从数据库取一个大结果集有可能导致outofMemory,当时的想法是分批去取回来,今天把它实现了,特地把代码分享出来: 工程下载:https://files.cnblogs.com/ ...
- JVM的线程
我们使用java命令来运行一个程序,那么就需要启动JVM , 而jvm的启动就相当于启动了一个进程 , 而这个进程在启动的时候会自动启动一个线程,由这个线程去调用main方法,而这个线程就是主线程 ; ...
- matllab 按照文件夹处理文件
folders=dir('文件夹地址'); folders={folders.name}; folders=setdiff(folders,{'.','..'})'; num=length(folde ...
- Python3 继承
继承的好处:子类实现父类的全部功能 1.单继承 若父类和子类有共同的方法或属性,则子类对父类方法或属性进行覆盖 class ClassA: def __init__(self): self.a = ' ...
- Python基础-day04
函数基础 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体验 1.1 快速体验 所谓函数,就是把 具有独立功能的代码块 组织为一个 ...
- C语言tips_2 关于scanf 读取规则小结以及与getchar 的区别
第一点:scanf默认回车和空格是输入不同组之间的间隔和结束符号. 也就是说他不会读取 空格 和 换行符.而是把他们当作一个 数据被读取完成的标志!他的停止标志则为,当%d之类的数据输入结束之后,自动 ...
- redis-5.0.3 redis.conf详解
# Redis configuration file example. # # Note that in order to read the configuration file, Redis mus ...
- C语言控制台软件制作
本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号:各行符号中心对齐:相邻两 ...