欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

每周问题系列 - JavaFX界面没响应,Maven编译自动忽略rt包

程序员文章站 2022-07-13 21:27:48
...

本人博客文章网址:https://www.peretang.com/weekly-problem-session-week-31/


前言

新开一个系列, 用来记录每周遇到的问题

 

JavaFX界面没响应

当你在JavaFX的一个事件中绑定了一个需要一段时间运行的事件时, 在该事件运行期间, JavaFX界面是没响应的.

查阅Oracle官方文档后得知, JavaFX是一个单线程程序, 其大概的流程是"界面-用户操作-根据顺序存入队列中-从队列中获取事件-执行具体的事件操作-修改界面".

Oracle亦给出了解决方法, JavaFX为我们准备了javafx.concurrent包, 来提供并发的支持, 使用javafx.concurrent中的Task类, 我们可以让逻辑在后台运行, 并可与界面控件进行绑定实现实时更新.

参考

JavaFX Concurrency

 

Maven编译自动忽略rt包

在本周的工作里, 在某个方法中使用了一个JDK自带的rt包中的类, 在使用Junit测试后没问题, 打算用maven打包并发布, 但是却提示该类不存在, 在网上查阅资料后得知

--"sun之类的包并不包含在Java平台的标准中"

解决方法:

在Maven中的maven-compiler-plugin插件中的configuration中添加

<fork>true</fork>
<compilerArgument>-XDignore.symbol.file</compilerArgument>

从而让javac编译器允许编译rt中的某些特别类

参考

Maven can't compile class which depends on rt.jar

 

Keep outstanding.

Pere Tang. 2pm on Aug 8, 2017