Java应用访问违例异常调试:大英百科2015无法启动问题排查
问题描述
64位Windows 10 Enterprise系统上的Britannica Ultimate Reference Suite 2015此前运行正常,近期启动时无响应,仅磁盘指示灯短暂闪烁。查看事件日志发现如下错误:
Faulting application name: starter.exe, version: 1.0.0.1, time stamp: 0x442aec18 Faulting module name: jvm.dll, version: 5.0.220.3, time stamp: 0x4acf0d6a Exception code: 0xc0000005 Fault offset: 0x0008bcbd Faulting process id: 0x1bb8 Faulting application start time: 0x01d8eedfa9234539 Faulting application path: D:\Program Files (x86)\Britannica 15.0\Ultimate Reference Suite\starter.exe Faulting module path: D:\Program Files (x86)\Britannica 15.0\Ultimate Reference Suite\jre\bin\Client\jvm.dll Report Id: a34d85a4-ca1d-452f-8b8f-0f183b9449d1 Faulting package full name: Faulting package-relative application ID:
该错误为JVM触发的访问违例异常(0xc0000005)。通过WinDbg分析可执行文件,异常触发于以下指令:
6d6cbcbd ff33 push dword ptr [ebx]
栈窗口内容:
[0x0] jvm!AsyncGetCallTrace + 0x21665 [0x1] jvm!AsyncGetCallTrace + 0x217b7 [0x2] starter + 0x17ed [0x3] 0x24994d0
尝试从DVD重新安装时,Install Anywhere进度条走完后无响应;通过控制面板卸载失败,程序在卸载列表中显示无磁盘占用。问题出现于安装Anaconda之后,怀疑其影响了JVM环境。
解决步骤
1. 隔离Anaconda对JVM环境的影响
Britannica自带独立JRE,Anaconda安装可能修改了系统PATH环境变量,导致程序优先调用Anaconda的JVM而非自带版本:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在系统变量的
PATH中,将D:\Program Files (x86)\Britannica 15.0\Ultimate Reference Suite\jre\bin\Client移至最顶部 - 点击「确定」保存后,重启电脑再尝试启动Britannica
2. 强制卸载并重新安装
因常规卸载失败,采用手动清理后重装:
- 打开任务管理器,结束所有与Britannica、InstallAnywhere相关的进程
- 手动删除安装目录:
D:\Program Files (x86)\Britannica 15.0 - 启动注册表编辑器(运行
regedit.exe),删除以下注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\BritannicaHKEY_CURRENT_USER\Software\Britannica
- 重启系统后,插入安装DVD,右键选择「以管理员身份运行」安装程序
3. 修复自带JRE文件
若不想卸载,可尝试修复损坏的JVM组件:
- 检查
D:\Program Files (x86)\Britannica 15.0\Ultimate Reference Suite\jre\bin\Client\jvm.dll是否损坏,可从相同版本的Britannica安装介质中提取替换该文件 - 以管理员身份打开命令提示符,进入上述jvm.dll所在目录,执行命令:
regsvr32 jvm.dll - 完成后重启程序测试
4. 调整JVM启动参数
内存访问异常可能与JVM堆内存设置有关,修改启动参数优化:
- 找到Britannica的快捷方式,右键选择「属性」
- 在「目标」栏的末尾添加以下参数(注意与原路径间加空格):
-Xmx512m -Xms256m - 点击「确定」后,双击快捷方式启动程序
内容的提问来源于stack exchange,提问作者Ehsan Amini
相关产品推荐
相关产品推荐

