javafx jar包_Upgrade:SpringBoot-JavaFX升级Java13

概述

新版本JDK我眼馋了很久了,一直到今天终于升级成功了,这里记载一下出现的问题以及我解决他们的办法。

另外我发现升级之后,Spring的ClassPathResources都失效了,JarLauncher也不能正常启动打包好的jar,我废了很长时间也没有成功打包完成,有人知道该怎么办吗?

过程

Maven的准备

首先,需要准备好需要的各种jar包,比如一些古董级别的,那就得下载然后重新编译一下,加上module-info什么的,这些就不说了。

然后,首先更换Springboot的Parent。

<parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.2.2.RELEASE</version>
     <relativePath/> <!-- lookup parent from repository -->
</parent>

这个是比较新的版本,更换之后支持模块化的java。完成之后添加各个JavaFX依赖,因为java8以后javafx是一个独立的工程了。

在此之后,检查maven里面各个依赖有没有能更新的,能更新就都更新了,因为新版本是模块化的,更新之后这些jar包中一些就支持模块化了,如果是标准的模块化,那么是可以通过jlink直接生成jre的,当然似乎在springboot里面这个倒是无所谓,反正他们都会被直接打进jar包里面。

这个时候就得说下javafx-spring-boot-support这个工程了,作者似乎不见了,我手动魔改了一个适合java13的版本,地址在文末,当然有bug是在所难免的了,也没有maven,需要手动下载然后编译。

如果工程里面有Lombok,特别要注意一下,如果他不是spring创建的时候引入的,那么就需要更新他的版本,用最新的就行。

接着更改Maven的编译版本

    <properties>
        <java.version>13</java.version>
    </properties>

做完这些,就可以开始更改idea的工程配置了。

IDEA的配置

v2-c341922b227a14537179f4cc561cf467_b.jpg

更改project的ProjectSDK,languageLevel

v2-0b2b66c8eb80802c4fea958f7718b876_b.png

更改这两个Tab的language Level。

v2-7568f38f977a9d61fa4e7bb8e6009a9b_b.jpg

检查Run Configuration,如果这里选择了JRE,那么需要更换这里的JRE。

v2-cf8772d7c6e4bbd4ad80ba96c2565f63_b.jpg

检查Setting的JavaCompiler选项,如果是其他的,需要更换为13.

ok,到此为止,idea已经设置好了。

运行的Bug以及处理

现在,创建module-info.java,直接创建在最外层包里面,然后运行springboot。

那么,一大堆bug已经准备就绪。

问题1:lombok 需要Mapstruct.spi.ap

处理方法:添加mapstruct的AnnotationProcessor即可。

问题2:plexus-container-default-1.6.jar没有模块描述符

v2-972ffbd2ca20977bcdfab214278609a9_b.jpg

processorPath复制出来,去掉那个plexus-container-default-1.6.jar的路径,然后黏贴回去即可。

问题3:程序包xxx存在于xxx里面,但是模块xxx并没有读取它

处理方法:

module-info添加对这个模块require即可。你可以检查源码里面红色的地方,根据idea的提示添加require。

问题4:xxx没有open到xxx

module test13 does not open com.example.demo to module spring.core

就像这种。添加opens语句,对需要的模块开放自己的包即可。

问题5:Unable to resolve persistence unit root URL

module-info增加 requires net.bytebuddy;

问题6:java.lang.NoSuchFieldError: TRACE

属于依赖包的冲突,去掉多余的包,保留一个就行,可以通过

v2-9efc8c7cc16c5778afd1ef810ce08b4b_b.jpg

v2-6957f8c6f18e0d80521b9892582a8e97_b.jpg

v2-0142e7646e3042117e3a96dac8d9a3b5_b.jpg

然后Ctrl + F,输入冲突包,右键,Exclude掉。

问题7:ClassNotFound,NoClassDefinied

处理方法:添加相关依赖,不行的话就在module-info里require他。

JavaFXSupport - java13版

SW-Fantastic/springboot-javafx-support​github.com
v2-c68a267c1096a750df1af6466b47b2a3_ipico.jpg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值