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