我正在使用JME框架开发应用程序,有时会遇到以下错误信息导致程序崩溃:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x3d601ad7, pid=168, tid=4012
#
# JRE version: 6.0_29-b11
# Java VM: Java HotSpot(TM) Client VM (20.4-b02 mixed mode, sharing windows-x86)
# Problematic frame:
# C [ig4dev32.dll+0x21ad7]
#
# An error report file with more information is saved as:
# C:\...\hs_err_pid168.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
日志文件可以通过此链接找到:http://sergpank.heliohost.org/log.html
最奇怪的是,我在编译后的代码中才会出现崩溃,但当我从Eclipse启动它时,我的机器上一切正常。在搭载AMD视频适配器的机器上没有崩溃。在其他安装了Intel显卡的机器上有时候也会出现崩溃,这通常是在调试阶段。
我开始怀疑这是因为ant设置不正确(在startup.ini中设置了以下路径:-Djava.library.path=lib/dlls,所以dlls可以被该项目看到)。但仍然想不通为什么它在AMD上几乎完美运行,在Intel上却会崩溃。
也许这与ant有关,我必须将dlls添加到manifest文件中...查看文档,但找不到如何实现它的方法。
解决方案:
在64位系统上必须使用对应的JVM(64位),然后就不会崩溃 =))