2016-11-16 126 views
1

我在Netbeans中创建了一个在我的计算机上运行时没有问题的Java项目(都在Netbeans和运行jar文件),但当我尝试运行另一台计算机,我得到了以下错误消息的项目:当在另一台计算机上运行java项目时,“Java运行时环境检测到致命错误”

已经由Java运行时环境检测到致命错误:

EXCEPTION_ACCESS_VIOLATION(0000005)在PC = 0x0000000062478337,PID = 2860,tid = 0x0000000000000e84

JRE版本:Java™SE运行时环境(8.0_112-b15)(内部版本1.8.0_112-b15) Java VM:Java HotSpot™64位服务器VM(25.112-b15混合模式windows-amd64压缩的oops ) 有问题的帧: V [jvm.dll + 0x68337]

未能写入核心转储。小型转储默认情况下未在Windows

的客户端版本启用如果您想提交错误报告,请访问: http://bugreport.java.com/bugreport/crash.jsp

我搜索过类似的问题,但我似乎无法到找到任何与我的错误相符的东西,所以我不知道该怎么做。如果需要,我可以发布完整的错误日志。如果没有人能想出来,至少有人能指出我的方向是否正确(是内存问题,是否需要更新Java等)?

+0

在出现该错误的计算机上运行[memtest86](http://www.memtest86.com/)。另外,你为什么用windows-nt标记这个问题? –

+0

你在使用JNI方法吗?你在用图书馆吗? – 11684

+0

ElliottFrisch我标记了Windows NT,因为这就是错误日志所说的操作系统。 11684我不确定。我将如何检查? – BamSquid

回答

2

根据hs_err_pid.log该崩溃发生在本机方法com.microsoft.sqlserver.jdbc.AuthenticationJNI.SNISecGenClientContext内部,该方法显然属于MSSQL JDBC驱动程序。

崩溃转储中最有趣的部分是线
C:\Program Files\Java\jre1.8.0_112\bin\sqljdbc_auth.dll

显然,sqljdbc_auth.dll不属于JRE。看起来这个文件被手动复制到JRE目录。这是错误的,而且很可能是崩溃的原因。您必须正确安装MSSQL JDBC驱动程序,并将JVM参数设置为-Djava.library.path以指向包含驱动程序本机库的目录。

+0

这工作!我在那里的dll文件的原因是因为我有一个不同的错误,这是我在其他地方找到的解决方案,但我不认为这会是问题。 – BamSquid

+0

@apangin你能检查这里有什么问题吗? https://pastebin.com/Pt3sWa92 – StarDust

0

我今天在Intellij有同样的问题。我通过指向新的JRE版本来解决它。