javainstall4jaccessibilityjava-access-bridge

How do I uninstall a corrupt copy of Java's Assistive Technology - AccessBridge from a Windows 10 PC


My company sells a Java app that mysteriously stopped working for one of our customers. It had been working, but now won't start. The error he gets when trying to start the app is: "java.awt.AWTError: Assistive Technology not found...". I've researched the issue and I think it's caused by some other java app which incorrectly installed “java se accessbridge” and ended up corrupting all java apps on his PC. See:

https://www.avnirvana.com/threads/java-install-error-any-ideas-on-the-fix.2178/

Exception in thread "main" java.awt.AWTError: Assistive Technology not found: com.sun.java.accessibility.AccessBridge error

https://docs.oracle.com/javase/accessbridge/2.0.2/setup.htm#uninstalling-jab

I've had the customer uninstall our app, uninstall all copies of Java on his PC, and delete all copies of WindowsAccessBridge.dll found in ‘%WINDOWSHOME%\SYSWOW64’ and ‘%WINDOWSHOME%\SYSTEM32’. Now, he gets the same error from Install4j when trying to re-install our app. I have not asked him to try to re-install Assistive Technology-AccessBridge since our app does not require it and the installation appears convoluted and requires a number of manual steps.

There does appear to be a workaround. According to this article: https://deciphertools.com/blog/2016-05-09-assistive-technology-not-found/

you can keep the jre from loading AccessBridge by adding:

-Djavax.accessibility.assistive_technologies 
-Djavax.accessibility.screen_magnifier_present=false

To the app's vmoptions file. I would have him add this to our vmoptions file, but he can't get the installer to run since it gets the same error.

My question is twofold: What other things can I have the customer do to remove Assistive Technology-AccessBridge?

Failing that, how can I modify install4j's vmoptions file so he can install our app and modify its vmoptions file?


Solution

  • The installer does not read a .vmoptions file for security reasons. You can pass VM parameters on the command line like this:

    installer.exe -J-Djavax.accessibility.assistive_technologies -J-Djavax.accessibility.screen_magnifier_present=false