![openjfx 最近的升级破坏了我已安装的应用程序](https://linux22.com/image/1165602/openjfx%20%E6%9C%80%E8%BF%91%E7%9A%84%E5%8D%87%E7%BA%A7%E7%A0%B4%E5%9D%8F%E4%BA%86%E6%88%91%E5%B7%B2%E5%AE%89%E8%A3%85%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
今天我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.