7

如何解决这个错误?

线程“主”java.awt.AWTError 中的异常:未找到辅助技术:
 com.sun.java.accessibility.AccessBridge
    在 java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:775)
    在 java.awt.Toolkit.getDefaultToolkit(Toolkit.java:861)
    在 java.awt.Window.getToolkit(Window.java:1127)
    在 java.awt.Window.init(Window.java:369)
    在 java.awt.Window.(Window.java:407)
    在 java.awt.Frame.(Frame.java:402)
    在 java.awt.Frame.(Frame.java:367)
    在 javax.swing.JFrame.(JFrame.java:163)
    在 FirstJavaProject.(FirstJavaProject.java:7)
    在 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
4

3 回答 3

8

供将来参考,此异常的更常见原因之一是Java Access Bridge安装丢失或损坏。在这种情况下,标准配置文件 ( JDK_HOME/jre/lib/accessibility.properties) 中定义了以下访问网桥:

com.sun.java.accessibility.AccessBridge

但除非所需的安装完成,否则它实际上不会起作用。请注意,标准访问桥实现随 SDK 一起提供。要解决您的特定问题,请按照安装页面中的说明下载并安装 Oracle Access Bridge 。这应该可以解决程序中发生的启动错误。

于 2013-03-07T05:32:48.883 回答
3

回答那些:

  • 正在使用 Windows WSL2
  • 并安装了 OpenJDK 8
  • 已尝试启动 Gremlin 控制台或类似的 Java 应用程序

并且收到同样的错误,Assistive technology not found AWTError以前批准的答案都是正确的。

对于 WSL2 和 OpenJDK 8,您需要执行以下操作:

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

将配置行注释掉,如下所示:

#assistive_technologies=org.GNOME.Accessibility.AtkWrapper

无需重新启动 WSL 会话。只需重新启动 Java 应用程序。

于 2021-08-03T16:13:53.587 回答
1

使用Java 11,很可能您使用的是Java 8,并且它没有辅助技术org.GNOME.Accessibility.AtkWrapper

此外,不要从辅助功能属性文件中注释掉辅助技术行,这不会解决您的问题,而是会错误配置您的布局,并且您将留下丑陋或无法使用的 UI。

于 2021-10-07T22:53:16.840 回答