เทคโนโลยีสิ่งอำนวยความสะดวกไม่พบ AWTError


69
$ 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ได้

คำตอบ:


127

ฉันพบข้อผิดพลาดเดียวกันนี้บนเซิร์ฟเวอร์ Ubuntu 15.10 ของฉัน แต่ไม่ต้องการติดตั้ง OpenJDK เวอร์ชันที่ไม่มีส่วนหัวเนื่องจากจำนวนการอ้างอิงเพิ่มเติม วิธีแก้ปัญหาที่ง่ายกว่าคือการปิดใช้งานเทคโนโลยีช่วยเหลือเท่านั้น

สิ่งนี้สามารถทำได้โดยการแก้ไข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

นี่คือทางออกที่ดีที่สุด ใช้งานได้กับ android-sdk / tools / draw9patch ด้วย (เครื่องมือ Android SDK)
gorlok

สิ่งนี้ยังทำงานกับ Ubntu 15.10 ของฉันสำหรับการแก้ไขfreemindที่ไม่ได้เริ่มเป็นอย่างอื่น
rubo77

17
มันเพิ่งเกิดขึ้นกับฉันในวันนี้สองปีครึ่งหลังจากคำตอบนี้ แทนที่จะเป็น java-8 มันคือ java-11 ตอนนี้นอกเหนือไปจากนั้นช่วยฉันขอบคุณ
marosg

1
ขอบคุณสิ่งนี้ใช้ได้กับฉันสำหรับการเริ่มต้นซอฟต์แวร์อื่นที่เรียกว่า OpenRefine java-11-openjdk ที่นี่เช่นกัน
Nikhil VJ

ทำงานเหมือนมีเสน่ห์แค่ทำการปรับเปลี่ยนบางอย่าง ไม่ใช่ java-8 ที่นี่
Alexandre Campos

21

อ่านกระทู้ต่อไปนี้ ฉันจัดการเพื่อหลีกเลี่ยงปัญหานี้โดยการถอนการติดตั้ง 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

นี่คือการติดตั้งจาวารุ่นที่ไม่ใช่หัวขาด


9

สำหรับผู้ที่ไม่มีสิทธิ์เข้าถึงรูทบนเครื่องเพื่อเปลี่ยนไฟล์กำหนดค่าหรือไม่ต้องการติดตั้ง JRE แบบเต็ม: ต่อท้าย-Djavax.accessibility.assistive_technologies=" "คำสั่งของคุณเช่น

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

ไม่ทราบว่า" "มีความสำคัญเพียงแค่ใช้ "ไม่มีอะไร" เป็นพารามิเตอร์จะทำให้ JRE /etc/java-8-openjdk/accessibility.propertiesยังคงโหลดสิ่งที่ตั้งอยู่ใน


3
การต่อท้ายไม่ได้แก้ปัญหาให้ฉัน prepending เปลี่ยนข้อความไปยังไม่ได้ตามมาด้วยAssistive Technology not found: org.GNOME.Accessibility.AtkWrapper
Fabio Iotti

สิ่งนี้ใช้ได้กับฉันกับ Ubuntu 18.04 เมื่อ java ตั้งค่ากลับเป็นเวอร์ชัน 8 จาก 10 (เพราะ openjfx ยังไม่พร้อมใช้งาน precompiled) วิธีการอื่นที่ระบุไว้ในคำถามนี้ไม่ได้ผลสำหรับฉัน
Chris Good

4

ปัญหาเดียวกัน ในกรณีของฉันฉันไม่สามารถเรียกใช้ FastQC
นี่คือสิ่งที่ฉันทำ:

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

ฉันยืนยันว่า java หายไปแล้ว

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

แก้ไขปัญหา.


2

ฉันต้องถอนการติดตั้ง openjdk-11-jre เช่น:

sudo apt remove openjdk-11-jre

หรือ

sudo apt remove openjdk-11*

เพื่อลบแพ็คเกจ openjdk-11 ทั้งหมดในระบบของคุณ

สิ่งนี้บังคับให้โปรแกรมของคุณทำงานบน openjdk-8-jre แทนที่จะเป็น openjdk-11-jre เนื่องจากฉันติดตั้งทั้งคู่แล้ว เห็นได้ชัดว่าเทคโนโลยี Java Assistive ไม่ได้ทำงานบนแพ็คเกจ openjdk-11-jre ฉันเชื่อว่ามีวิธีระบุเวอร์ชัน Java ที่จะเรียกใช้ แต่ฉันไม่ทราบว่าอยู่ด้านบนสุดของหัวของฉันและฉันแน่ใจว่ามีโพสต์อื่นในหัวข้อนั้น


1
คุณไม่จำเป็นต้องถอนการติดตั้ง openjdk-11-jdk หรือ openjdk-11- jre
karel

0

ได้รับแรงบันดาลใจจากคำตอบของมาร์โก แต่สำหรับฉันมันใช้งานได้เฉพาะในลำดับนี้ (เตรียม):

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

มันแก้ปัญหาและโปรแกรมเปิดตัวเรียบร้อยแล้ว (ในกรณีของฉัน argouml.jar fakesmtp.jar)

ใช้ Java 8 บน Ubuntu 2019.04

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.