Dev*_*Dev 5 java ubuntu javafx
我有一个奇怪的问题。我启动JavaFX程序,该程序使用通过套接字发送的命令在屏幕上绘制对象(矩形,圆形等)。向后更改系统时钟时(例如,在11:00时在9:00时更改),JavaFX不会显示已执行命令的结果(即,创建的对象),并且后台的程序逻辑可以工作并在控制台中打印消息以用于接收并执行的命令,但屏幕上不显示任何内容。时间是通过命令更改的:
sudo date --set 'time' && sudo hwclock --systohc
Run Code Online (Sandbox Code Playgroud)
操作系统为Ubuntu 16.04.4 LTS,内核版本为3.4.39-s5p4418。该操作系统适用于Smart4418模块。
uname -a
输出:
Linux 4418Module 3.4.39-s5p4418#1 SMP PREEMPT Fri Aug 18 14:06:20 HKT 2017 armv7l armv7l armv7l GNU / Linux
Java版本:
Java版本“ 1.8.0_171”
Java™SE运行时环境(内部版本1.8.0_171-b11)
Java HotSpot(TM)客户端VM(内部版本25.171-b11,混合模式)
小智 6
jfxrt.jar中的Monocle.java使用java / util / Timer.java(JDK1.8)来管理屏幕。
TimerThread(JDK1.8)中的方法“ MainLoop”使用“ systemtime”计算执行时间。
如果“ systemtime”倒退,则此TimerThread冻结。
我通过修改Monocle.java来调用修改后的Timer.java并在jfxrt.jar中对其进行更新来解决此问题。