未发现辅助技术AWTError

$ 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

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

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

 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 

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

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

我运行的命令:

 sudo dpkg -l | grep openjdk 

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

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

这是为了删除无头版本。

 sudo apt-get install openjdk-8-jre 

这是安装非无头版的java。

对于那些在他们的机器上没有root访问权限来更改配置文件或者不想安装完整JRE的人:在命令中附加-Djavax.accessibility.assistive_technologies=" " ,例如

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

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

同样的问题。 在我的情况下,我无法运行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 

问题解决了。

我不得不卸载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版本,但我不知道它是否在我的头脑中并且我确定还有关于该主题的另一篇文章。