qzind / tray

Browser plugin for sending documents and raw commands to a printer or attached device.

Home Page:https://qz.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Assistive Technology not found: com.sun.java.accessibility.AccessBridge

tresf opened this issue · comments

When QZ Tray is starting on a PC with Java 1.8 assistive technologies enabled, the following error occurs.

  • Configuration file %USERPROFILE%\.accessibility.properties
    assistive_technologies=com.sun.java.accessibility.AccessBridge
    screen_magnifier_present=true

Workaround:

[INFO] 2024-02-14T19:32:51,524 @ qz.App:70
        Starting QZ Tray 2.2.2+1
Exception in thread "main" java.awt.AWTError: Assistive Technology not found: com.sun.java.accessibility.AccessBridge
        at java.desktop/java.awt.Toolkit.newAWTError(Unknown Source)
        at java.desktop/java.awt.Toolkit.fallbackToLoadClassForAT(Unknown Source)
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
        at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
        at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(Unknown Source)
        at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
        at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
        at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
        at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
        at java.desktop/java.awt.Toolkit.loadAssistiveTechnologies(Unknown Source)
        at java.desktop/java.awt.Toolkit.getDefaultToolkit(Unknown Source)
        at java.desktop/java.awt.EventQueue.invokeAndWait(Unknown Source)
        at java.desktop/javax.swing.SwingUtilities.invokeAndWait(Unknown Source)
        at qz.ws.PrintSocketServer.runServer(PrintSocketServer.java:60)
        at qz.App.main(App.java:72)
Caused by: java.lang.ClassNotFoundException: com.sun.java.accessibility.AccessBridge
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Unknown Source)
        ... 16 more
[INFO] 2024-02-14T19:33:51,305 @ qz.installer.certificate.CertificateManager:145
        SSL certificate is still valid for 824 more days: 2026-05-18T16:31Z.  We'll make a new one automatically when needed.Here are some more logs.

We are adding support for accessibility, but in case we ever need to disable it in the future, this code prevents the errors.

try {
    Class.forName("com.sun.java.accessibility.internal.AccessBridge");
} catch(ClassNotFoundException e) {
    System.setProperty("javax.accessibility.assistive_technologies", "java.lang.Object");
}