Вспомогательная технология не найдена AWTError

Вспомогательная технология не найдена 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.

решение1

Я столкнулся с этой же ошибкой на моем сервере Ubuntu 15.10, но не хотел устанавливать версию OpenJDK без headless из-за количества дополнительных зависимостей. Более простым решением было просто отключить вспомогательные технологии.

Это можно сделать, отредактировав accessibility.propertiesфайл для OpenJDK 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

решение2

Прочитайте следующую ветку. Мне удалось обойти эту проблему, удалив OpenJDK 8 headless и установив OpenJDK 8.

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

Команды, которые я выполнил:

sudo dpkg -l | grep openjdk  

Это необходимо для проверки того, что вы действительно используете headless-версию JAVA, поэтому библиотека графов недоступна.

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

Это необходимо для удаления версии без головы.

sudo apt-get install openjdk-8-jre

Это необходимо для установки неheadless-версии Java.

решение3

Для тех, у кого нет прав root на своих машинах для изменения файла конфигурации или кто не хочет устанавливать полную версию JRE: добавьте -Djavax.accessibility.assistive_technologies=" "к вашей команде, например:

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

Обратите внимание, что это " "важно, простое использование «ничего» в качестве параметра приведет к тому, что JRE все равно загрузит то, что установлено в /etc/java-8-openjdk/accessibility.properties.

решение4

Мне пришлось удалить 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 запускать, но я не помню этого навскидку, и я уверен, что есть другой пост на эту тему.

Связанный контент