我已经从事 Java 项目一年了。我的代码几个月来一直运行良好。几天前,我在我的 Mac (Snow Leopard 10.6.8) 上将 Java SDK 升级到了最新版本 1.6.0_26。升级后,发生了一些非常奇怪的事情。当我运行某些类时,出现此错误:
位置 0x202 rip=0x202 的无效内存访问
但是,如果我使用 -Xint(解释)运行它们,它们会工作,速度慢但工作正常。我在使用按位运算符(黑白棋游戏的位板)的类中遇到了这个问题。我不能在这里放任何代码,因为我没有收到错误、异常或类似的东西。我刚收到那条烦人的消息。
代码在没有 -Xint 的情况下无法运行但可以正常运行,这是否正常?我该怎么办?
提前致谢
最佳答案
当 JVM 开始像那样崩溃时,表明某些东西已经破坏了 JVM 的执行模型。
您的应用程序是否包含任何本地代码?它是否使用任何带有 native 代码组件的第 3 方库?如果两者都不是,那么这很可能是 JVM 的 Apple 端口中的错误。它可能是 JIT 编译器错误,或某些 JVM native 代码库中的错误。
对于这样的错误,您能做些什么?
不多。
- 通过逐步削减位来减少您的应用程序,直到您有一个显示问题的小测试用例。
- 根据测试用例,看看是否有一些经验方法可以避免该问题。
- 将错误报告连同测试用例一起提交给 Apple。
关于java - Java中位置的无效内存访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6560889/