找不到辅助技术AWTError


69
$ java -jar aprof-plot.jar
Exception in thread "main" java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper
    at java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:807)
    at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:886)
    at java.awt.Toolkit.getEventQueue(Toolkit.java:1734)
    at java.awt.EventQueue.invokeLater(EventQueue.java:1264)
    at aprofplot.Main.newWindow(Main.java:33)
    at aprofplot.Main.main(Main.java:359)

我在这里看到的可能解释是安装Java-access-bridge。但是我无法安装libaccess-java-bridge

Answers:


127

我在Ubuntu 15.10服务器上遇到了相同的错误,但是由于附加依赖项的数量,我不想安装非无头版本的OpenJDK。一个更简单的解决方案是简单地禁用辅助技术。

这可以通过编辑accessibility.propertiesOpenJDK 8 的文件来完成(将版本更改为系统上实际使用的版本):

sudo vim /etc/java-8-openjdk/accessibility.properties

注释掉以下行:

#assistive_technologies=org.GNOME.Accessibility.AtkWrapper

您也可以通过编程方式编辑此行:

sudo sed -i -e '/^assistive_technologies=/s/^/#/' /etc/java-*-openjdk/accessibility.properties

这是最好的解决方案。也适用于android-sdk / tools / draw9patch(Android SDK工具)
gorlok

这也适用于我的Ubntu 15.10,用于修复freemind无法正常启动的问题
rubo77 '16

17
今天,发生在这个答案两年半之后的我。而不是Java-8,它现在是Java-11,
除此之外

1
谢谢,这对我启动另一个名为OpenRefine的软件很有帮助。java-11-openjdk也是如此。
Nikhil VJ

就像做一个魅力一样,只是进行一些调整。这里不是java-8。
亚历山大·坎波斯

21

阅读以下线程。我设法通过无头卸载OpenJDK 8并安装OpenJDK 8来解决了这个问题。

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798794

我运行的命令:

sudo dpkg -l | grep openjdk  

这是为了验证您是否实际上正在运行JAVA的无头版本,因此没有可用的图形库。

sudo apt-get remove openjdk-8-jre-headless

这是删除无头版本。

sudo apt-get install openjdk-8-jre

这是安装Java的非无头版本。


9

对于那些在其计算机上没有root用户访问权限以更改配置文件或不想安装完整的JRE的用户:-Djavax.accessibility.assistive_technologies=" "在命令后附加例如

$ java -jar aprof-plot.jar -Djavax.accessibility.assistive_technologies=" "

请注意,这" "很重要,仅使用“ nothing”作为参数将导致JRE仍然加载设置的内容/etc/java-8-openjdk/accessibility.properties


3
追加并不能解决我。前置将消息更改为Assistive Technology not found: 不跟随org.GNOME.Accessibility.AtkWrapper
法比奥·伊奥蒂

当Java从10设置回版本8时,这对于Ubuntu 18.04来说对我有用(因为还无法预编译openjfx)。此问题中列出的其他方法对我不起作用。
克里斯·古德

4

同样的问题。就我而言,我无法运行FastQC。
这是我所做的:

$ sudo apt-get remove openjdk-11-jre-headless

我确认Java不见了

$ java -version
bash: /usr/bin/java: No such file or directory
$ sudo apt-get install openjdk-8-jre

问题解决了。


2

我必须卸载openjdk-11-jre,例如:

sudo apt remove openjdk-11-jre

要么

sudo apt remove openjdk-11*

删除系统上的所有openjdk-11软件包。

这将迫使您的程序在openjdk-8-jre而不是openjdk-11-jre上运行,因为我都已经安装了。显然,Java Assistive Technology不在openjdk-11-jre软件包上运行。我相信还有一种方法可以指定要运行的Java版本,但是我不知道该怎么办,我敢肯定还有另一篇关于该主题的文章。


1
你甚至都不需要的JRE的OpenJDK-11卸载的OpenJDK-11-JDK或:askubuntu.com/questions/315646/...
卡雷尔

0

从Marco的答案中得到启发,但对我来说,它仅按以下顺序工作(前置):

java -Djavax.accessibility.assistive_technologies=" " -jar aprof-plot.jar

它解决了问题,程序成功启动(在我的情况下为argouml.jar fakesmtp.jar)。

在Ubuntu 2019.04上使用Java 8

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.