2

我的公司销售的 Java 应用程序神秘地停止为我们的一位客户工作。它一直在工作,但现在无法启动。他在尝试启动应用程序时遇到的错误是:“java.awt.AWTError: Assistive Technology not found...”。我已经研究过这个问题,我认为这是由其他一些 java 应用程序错误地安装了“java se accessbridge”并最终破坏了他 PC 上的所有 java 应用程序引起的。看:

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

线程“主”java.awt.AWTError 中的异常:未找到辅助技术:com.sun.java.accessibility.AccessBridge 错误

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

我让客户卸载了我们的应用程序,卸载了他 PC 上的所有 Java 副本,并删除了在 '%WINDOWSHOME%\SYSWOW64' 和 '%WINDOWSHOME%\SYSTEM32' 中找到的所有 WindowsAccessBridge.dll 副本。现在,当他尝试重新安装我们的应用程序时,他从 Install4j 收到了同样的错误。我没有要求他尝试重新安装 Assistive Technology-AccessBridge,因为我们的应用不需要它,而且安装看起来很复杂,需要一些手动步骤。

似乎有一种解决方法。根据这篇文章: https ://deciphertools.com/blog/2016-05-09-assistive-technology-not-found/

您可以通过添加以下内容来阻止 jre 加载 AccessBridge:

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

到应用程序的 vmoptions 文件。我会让他将此添加到我们的 vmoptions 文件中,但他无法让安装程序运行,因为它得到了相同的错误。

我的问题是双重的: 我可以让客户做些什么来移除 Assistive Technology-AccessBridge?

如果做不到这一点,我该如何修改 install4j 的 vmoptions 文件,以便他可以安装我们的应用程序并修改其 vmoptions 文件?

4

1 回答 1

2

.vmoptions出于安全原因,安装程序不会读取文件。您可以像这样在命令行上传递 VM 参数:

installer.exe -J-Djavax.accessibility.assistive_technologies -J-Djavax.accessibility.screen_magnifier_present=false
于 2018-12-19T16:47:59.660 回答