如何解决此错误?
Exception in thread "main" java.awt.AWTError: Assistive Technology not found: com.sun.java.accessibility.AccessBridge at java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:775) at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:861) at java.awt.Window.getToolkit(Window.java:1127) at java.awt.Window.init(Window.java:369) at java.awt.Window.(Window.java:407) at java.awt.Frame.(Frame.java:402) at java.awt.Frame.(Frame.java:367) at javax.swing.JFrame.(JFrame.java:163) at FirstJavaProject.(FirstJavaProject.java:7) at FirstJavaProject.main(FirstJavaProject.java:5)
在执行以下程序时发生:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TenButtons extends JFrame{
JButton [] btns= new JButton[10];
public static void main(String args[]){
new TenButtons();
}
public TenButtons(){
this.setSize(500,500);
this.setTitle("10 Buttons");
this.setLayout(new GridLayout(5,2));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
for(int i=0; i<btns.length; i++){
btns[i]=new JButton("Button ");
this.add(btns[i]);
}
this.setVisible(true);
}
}
我的JDK_HOME/jre/lib/accessibility.properties
文件包含以下内容:
## Load the Java Access Bridge class into the JVM ##
assistive_technologies=com.sun.java.accessibility.AccessBridge
#screen_magnifier_present=true
答案 0 :(得分:5)
为了将来参考,此异常的一个常见原因是Java Access Bridge的安装丢失或损坏。在这种情况下,已在标准配置文件(JDK_HOME/jre/lib/accessibility.properties
)中定义了以下访问桥:
com.sun.java.accessibility.AccessBridge
但除非所需的安装完成,否则它实际上无法运行。请注意,标准访问桥实现不会带有SDK的软件包。要解决您的特定问题,请按照setup page中的说明下载并安装Oracle Access Bridge。这应该可以解决程序中发生的启动错误。
答案 1 :(得分:0)
回答那些:
并收到相同的错误 Assistive technology not found AWTError
之前批准的答案是正确的。
对于 WSL2 和 OpenJDK 8,您需要执行以下操作:
sudo vim /etc/java-8-openjdk/accessibility.properties
注释掉配置行,如下所示:
#assistive_technologies=org.GNOME.Accessibility.AtkWrapper
无需重新启动 WSL 会话。只需重新启动 Java 应用。