今天我apt upgrade
在 Ubuntu 18.04 LTS 上运行它,之后安装的 JavaFX 8 应用程序(内部开发的工具)停止工作。
运行应用程序只会带来以下错误:
$ java -jar app.jar
Error: Could not find or load main class ui.Main
答案1
事实证明,Canonical 决定发布新版本的 openjfx。(顺便问一下,有地方可以看到此类版本更改/决定吗?)
相关信息可以参见/var/log/apt/history.log
:
Start-Date: 2019-04-29 07:10:19
Commandline: apt upgrade
Requested-By: tannerli
Install: [snip]
Upgrade: [...]
openjfx:amd64 (8u161-b12-1ubuntu2, 11.0.2+1-1~18.04.2)
openjfx-source:amd64 (8u161-b12-1ubuntu2, 11.0.2+1-1~18.04.2)
libopenjfx-java:amd64 (8u161-b12-1ubuntu2, 11.0.2+1-1~18.04.2)
libopenjfx-jni:amd64 (8u161-b12-1ubuntu2, 11.0.2+1-1~18.04.2)
[...]
有一个未解决的错误发射台在各种 StackExchange 网站上也有很多与此相关的类似问题,这个例如。这些都不符合我的具体需求。似乎到今天还没有真正的解决方案,只有一个
解决方法
明确将所有 openjfx 包降级到以前的版本:
$ sudo apt install openjfx=8u161-b12-1ubuntu2 libopenjfx-java=8u161-b12-1ubuntu2 libopenjfx-jni=8u161-b12-1ubuntu2 openjfx-source=8u161-b12-1ubuntu2
保留受影响的软件包,以便下一个软件包apt upgrade
不会再次破坏事物:
$ sudo apt-mark hold libopenjfx-java libopenjfx-jni openjfx openjfx-source
这将在您下次升级时显示为信息:
$ sudo apt upgrade
[...]
The following packages have been kept back:
libopenjfx-java libopenjfx-jni openjfx openjfx-source
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.