本文出处:http://blog.csdn.net/chaijunkun/article/details/121230563,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文。
Charles突然无法打开
也许你正经历和我一样的情况,Charles抓包工具之前装得好好的,突然打不开了;或者你重新安装了Charles但故障依旧;甚至你从来没装过,但装完就是打不开。体现的症状就是双击后没反应。那么下面的内容可能对你有所帮助。
排查问题
既然双击无法打开,那么在命令行里我们看下能不能打开。在cmd中进入安装目录,然后执行:
C:\Users\chaijunkun>cd "c:\Program Files\Charles"
C:\Program Files\Charles>Charles.exe
然后提示如下错误:
C:\Program Files\Charles>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)
……
Caused by: java.lang.ClassNotFoundException: com.sun.java.accessibility.AccessBridge
……
看来是没有找到一个叫AccessBridge的东西。但是作为一个成熟的商业产品,没有理由不考虑用户安装环境,缺少这么个组件啊。如果你是专业的开发人员,可能也不会随便动这个组件。
寻找解决办法
在Stack Overflow上,找到了相关的说明。Java Access Bridge这样一个基于Java的辅助功能桥接库是随着JRE安装的。但是作为开发人员,可能只装了JDK,在默认配置文件JDK_HOME/jre/lib/accessibility.properties中会有其具体配置。另外对于Windows用户而言,同样的配置还会出现在用户目录下:
C:\Users\current_user\.accessibility.properties
但其实大多数情况下,我们并不需要配置它。只需要把这个文件删除,或者把每一行注释掉(以#号开头)就好了。
2025年7月3日补充:今天换了新电脑,数据迁移时发现在新电脑上没有安装Charles时,.accessibility.properties居然也出现了。而在这之前我唯一运行过的应用就是IDEA(版本为:2025.1.3)。推测应该是IDEA生成的。考虑到在较早前就有评论里说删了之后又莫名其妙出现该文件的情况,或许很早的IDEA版本就有生成此文件的逻辑了。
参考文献:
[1]JayDi,Perception.Assistive Technology not found
[EB/OL].https://stackoverflow.com/questions/15260989/exception-in-thread-main-java-awt-awterror-assistive-technology-not-found,2021-03-13.