新版本的 gnome-initial-setup 导致 Java 问题

新版本的 gnome-initial-setup 导致 Java 问题

我刚刚进行了一次小升级,然后突然开始遇到 Java 问题。

堆栈跟踪如下所示:

java.awt.AWTError:未找到辅助技术:org.GNOME.Accessibility.AtkWrapper
    在 java.desktop/java.awt.Toolkit.newAWTError(Toolkit.java:472)
    在 java.desktop/java.awt.Toolkit.fallbackToLoadClassForAT(Toolkit.java:488)
    在 java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
    在 java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
    在 java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1608)
    在 java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    在 java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    在 java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
    在 java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
    在 java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    在 java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
    在 java.desktop/java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:532)
    在 java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:613)
    在 java.desktop/java.awt.Window.getToolkit(Window.java:1375)
    在 java.desktop/java.awt.Window.init(Window.java:518)
    位于 java.desktop/java.awt.Window。(Window.java:549)
    位于 java.desktop/java.awt.Frame。(Frame.java:423)
    位于 java.desktop/java.awt.Frame。(Frame.java:388)
    位于 java.desktop/javax.swing.JFrame。(JFrame.java:180)
    在 rga.hack.SlideShow.(SlideShow.java:293)
    在 rga.hack.SlideShow.main(SlideShow.java:674)
原因:java.lang.ClassNotFoundException:org.GNOME.Accessibility.AtkWrapper
    在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    位于 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
    在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
    在 java.base/java.lang.Class.forName0(本机方法)
    在 java.base/java.lang.Class.forName(Class.java:374)
    在 java.desktop/java.awt.Toolkit.fallbackToLoadClassForAT(Toolkit.java:485)
    ... 另外 19 个

我安装了 openjdk-11-jre 和 openjdk-11-jre-headless 以及 libatk-wrapper-java 和 libatk-wrapper-java-jni。

我使用的 Java 代码是我自己编写的旧程序,但直到上次更新之前它一直运行良好。

我可以通过注释掉 /etc/java-11-openjdk/accessibility.properites 中的行来解决这个问题,但我怀疑我最近安装的某个软件包中存在一个破坏的依赖关系。

更新中安装了以下软件包:

升级了以下软件包:
accountsservice (0.6.45-1ubuntu1) 至 0.6.45-1ubuntu1pop2
控制台设置(1.178ubuntu2.3)升级至 1.178ubuntu2.6
console-setup-linux (1.178ubuntu2.3) 升级至 1.178ubuntu2.6
gir1.2-accountsservice-1.0 (0.6.45-1ubuntu1) 至 0.6.45-1ubuntu1pop2
gnome-initial-setup(3.28.0-2ubuntu6.16.04.1)至 3.28.0-2ubuntu6.16.04.2system76.1
键盘配置(1.178ubuntu2.3)升级至 1.178ubuntu2.6
libaccountsservice0 (0.6.45-1ubuntu1) 至 0.6.45-1ubuntu1pop2
palemoon(27.9.4~binaryrepack-1)至 28.0.0~repack-3

由于该错误与 gnome 有关,我将其归咎于 gnome-initial-setup 包,但我想知道是否有人比我更了解这一点。

答案1

openjdk atk 包装器有一个已知错误,因此它实际上不是 gnome 问题。openjdk 错误表明它是在 openjdk9 中引入的,但谷歌搜索显示它早在 openjdk8 中就存在。该错误已关闭,并进行了外部分类,需要将 ATK 重新设计为服务。

解决方法是,要么注释掉辅助功能属性文件中的辅助技术行(如您所述),要么将包装器添加到类路径中

export CLASSPATH=/usr/share/java/java-atk-wrapper.jar

openjdk 错误参考是https://bugs.openjdk.java.net/browse/JDK-8204862

相关内容