110
$ 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)

Possible explanations I saw here was to install Java-access-bridge. But I am unable to install libaccess-java-bridge.

serv-inc
  • 3,059

7 Answers7

199

I ran into this same error on my Ubuntu 15.10 server but did not want to install the non-headless version of OpenJDK due to the number of additional dependencies. A simpler solution was to simply disable assistive technologies.

This can be done by editing the accessibility.properties file for OpenJDK 8 (change the version to whichever is actually in use on your system):

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

Comment out the following line:

#assistive_technologies=org.GNOME.Accessibility.AtkWrapper

Also you can edit this line programmatically:

sudo sed -i -e '/^assistive_technologies=/s/^/#/' /etc/java-*-openjdk/accessibility.properties
David Foerster
  • 36,264
  • 56
  • 94
  • 147
rdrever
  • 2,091
  • 1
  • 11
  • 4
  • 1
    This is the best solution. Works for android-sdk/tools/draw9patch too (Android SDK Tools) – gorlok Jan 31 '16 at 16:53
  • This also worked on my Ubntu 15.10 for fixing freemind that wasn't starting otherwise – rubo77 Feb 23 '16 at 19:24
  • 20
    it just happened to me today, two and half years after this answer. instead of java-8 it is java-11 now, other than that, helped me, thank you – marosg Aug 22 '18 at 12:54
  • 1
    Thanks, this worked for me for starting another software called OpenRefine. java-11-openjdk here as well. – Nikhil VJ Aug 22 '18 at 16:21
  • Worked like a charm, just making some adjustments. It's not java-8 here. – Alexandre Campos Sep 04 '18 at 19:49
  • Worked for fixing Slick2D game engine problem, thanks! – OldTeaOwl Nov 27 '20 at 03:58
  • Also in Ubuntu 20.10 ;-) – Felix Aballi Jan 04 '21 at 21:42
  • Although my system is headless, my application does manipulate image files. I do not want to install the full JRE which causes X to be installed. I also do not want to disable the feature because I need to manipulate the image files. So, the question is, if I disable the feature as you describe, will that inhibit the file image functionality of my application? – Blake McBride Jun 09 '22 at 13:40
39

Read the following thread. I managed to escape this problem by uninstalling OpenJDK 8 headless and installing OpenJDK 8.

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

Commands I ran:

sudo dpkg -l | grep openjdk  

This is to verify you are actually running the headless version of JAVA, so no graph library available.

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

This is to remove headless version.

sudo apt-get install openjdk-8-jre

This is to install non-headless version of java.

danielmacho72
  • 499
  • 3
  • 3
14

For those who do not have root access on their machines to change the configuration file or do not want to install the full JRE: append -Djavax.accessibility.assistive_technologies=" " to your command, e.g.

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

Do note that the " " is important, simply using "nothing" as parameter will cause the JRE to still load whatever is set in /etc/java-8-openjdk/accessibility.properties.

Marco Schuster
  • 141
  • 1
  • 2
  • 3
    Appending did not solve for me. Prepending changed the message to Assistive Technology not found: not followed by org.GNOME.Accessibility.AtkWrapper. – Fabio Iotti Aug 21 '18 at 14:19
  • 1
    This worked for me with Ubuntu 18.04 when java set back to version 8 from 10 (because openjfx not available precompiled yet). Other methods listed in this question did not work for me. – Chris Good Sep 13 '18 at 09:11
7

Same issue. In my case I couldn't run FastQC.
This is what I did:

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

I verified java was gone

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

Problem solved.

abu_bua
  • 10,783
3

I had to uninstall openjdk-11-jre, eg:

sudo apt remove openjdk-11-jre

or

sudo apt remove openjdk-11*

to remove all openjdk-11 packages on your system.

This forces your program to run on openjdk-8-jre instead of openjdk-11-jre, as I had both installed. Apparently Java Assistive Technology doesn't run on the openjdk-11-jre package. I believe there is also a way to specify which Java version to run, but I don't know it off the top of my head and I'm sure there's another post on that topic.

  • 1
    You don't even need to uninstall openjdk-11-jdk or openjdk-11-jre: https://askubuntu.com/questions/315646/update-java-alternatives-vs-update-alternatives-config-java – karel Sep 01 '18 at 15:57
3

Inspired from Marco's answer, but for me it only works in this order (prepending):

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

It solved the problem and the program launched successfully (in my case argouml.jar fakesmtp.jar).

Using Java 8 on Ubuntu 2019.04

Nicolas Raoul
  • 11,603
0

This kind of error happens when you have a headless version of the JRE installed. The headless JRE is a subset of the full JRE but lacks GUI features, including support for assistive technologoes.

Install the full JRE (e.g. openjdk11-jre instead of openjdk11-jre-headless) and the error should go away. No need to uninstall the headless JRE.

user149408
  • 1,431