无法运行Java应用程序(如logisim),因为出现了“未找到辅助技术”错误。

我试过了,错误如下:
Exception in thread "main" java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper
at java.desktop/java.awt.Toolkit.newAWTError(Toolkit.java:472)
at java.desktop/java.awt.Toolkit.fallbackToLoadClassForAT(Toolkit.java:488)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1608)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
at java.desktop/java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:532)
at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:613)
at java.desktop/javax.swing.UIManager.getSystemLookAndFeelClassName(UIManager.java:660)
at com.cburch.logisim.gui.start.Startup.parseArgs(Startup.java:250)
at com.cburch.logisim.Main.main(Main.java:32)

错误似乎是由以下原因引起的:
Caused by: java.lang.ClassNotFoundException: org.GNOME.Accessibility.AtkWrapper at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:374) at java.desktop/java.awt.Toolkit.fallbackToLoadClassForAT(Toolkit.java:485) ... 14 more apt-cache policy logicsim logisim 的输出结果为:
logisim:
  Installed: 2.7.1~dfsg-1
  Candidate: 2.7.1~dfsg-1
  Version table:
 *** 2.7.1~dfsg-1 500
        500 http://in.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
        500 http://in.archive.ubuntu.com/ubuntu bionic/universe i386 Packages
        100 /var/lib/dpkg/status
N: Unable to locate package logicsim

使用 update-java-alternatives -l 命令的输出结果

java-1.11.0-openjdk-amd64      1101       /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64

1你的Ubuntu版本是什么?我们如何重现你的问题? - N0rbert
@N0bert 这是最新版本。我刚刚使用命令[sudo apt-get install logicsim]安装了这个应用程序,但当我尝试启动它时出现了错误。 - WISERDIVISOR
请将apt-cache policy logicsim logisimupdate-java-alternatives -l的输出添加到问题中。 - N0rbert
通过禁用辅助技术解决了问题。请参阅下面的答案。 - N0rbert
2可能是Assistive technology not found AWTError的重复问题。 - David Foerster
1个回答

我可以确认您在干净的Ubuntu 18.04 LTS上遇到的问题。
所以我向LaunchPad报告了bug 1788267(目前它被标记为bug 1788250的重复,并且在Debian中也存在bug 900912)。

真是难以置信 - 许多Java应用程序都出现了相同的错误,涉及java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper

更新20180913 - bug已修复。下面的步骤不再需要(它们已包含在更新的软件包中)。


但是我们可以通过在/etc/java-11-openjdk/accessibility.properties中禁用辅助技术来解决这个问题:
sudo sed -i "s/^assistive_technologies=/#&/" \
/etc/java-11-openjdk/accessibility.properties

和/或在/etc/java-8-openjdk/accessibility.properties文件中

sudo sed -i "s/^assistive_technologies=/#&/" \
/etc/java-8-openjdk/accessibility.properties