
$ 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 バージョンを指定する方法もあると思いますが、すぐには思い出せません。このトピックについては別の投稿があるはずです。