보조 기술을 찾을 수 없습니다. 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를 설치하고 싶지 않았습니다. 더 간단한 해결책은 단순히 보조 기술을 비활성화하는 것이었습니다.

이는 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

답변2

다음 스레드를 읽어보세요. 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를 설치하는 것입니다.

답변3

구성 파일을 변경하기 위한 루트 액세스 권한이 없거나 전체 JRE를 설치하고 싶지 않은 경우: -Djavax.accessibility.assistive_technologies=" "명령에 추가하세요. 예:

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

매개 " "변수로 "nothing"을 사용하면 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-11-jre 대신 openjdk-8-jre에서 실행됩니다. 둘 다 설치했기 때문입니다. 분명히 Java Assistive Technology는 openjdk-11-jre 패키지에서 실행되지 않습니다. 실행할 Java 버전을 지정하는 방법도 있다고 생각하지만, 머리로는 잘 모르겠고 해당 주제에 대한 또 다른 게시물이 있을 것이라고 확신합니다.

관련 정보