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

関連情報