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:
- Delete or comment the line containing the missing class file.
#assistive_technologies=com.sun.java.accessibility.AccessBridge screen_magnifier_present=true
- Credit goes to https://stackoverflow.com/a/74178775/3196753
[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");
}