我可能在Java中遇到过一个奇怪的错误。 当我运行以下代码时,我得到“EXCEPTION_ACCESS_VIOLATION”异常。
我知道代码没有意义(就逻辑而言),因为它是我最初编写的代码的子集。如果我删除了几行,那么这个bug就会消失。
任何人都可以弄清楚这个错误的原因是什么吗?
public static void main(String[] args) {
for (int i=0; i < 4000; i++) {
System.out.println("item " + i);
test1();
}
//runBatch();
System.out.println("Done! bye bye..");
}
public static int test1() {
int count;
int allMiddleCount;
int[] b = new int[0];
allMiddleCount = 0;
for (int i = 1; i < 64; i++)
{
// evaluating the size of the subset
count = 0;
for (int j = 0; j < 6; j++)
count++;
allMiddleCount++;
}
for (int i=0; i < allMiddleCount; i++) {
}
return 0;
}
答案 0 :(得分:3)
有人能弄明白这个错误的原因吗?
如果进程正在死亡而不是正常的Java异常,那么它基本上就是一个JVM错误。您还没有说明您使用的是哪个版本,或者您正在使用哪个版本,但请尝试更新到更高版本。
答案 1 :(得分:3)
在{@ 1}}上搜索我在Oracle网站上发现存在一些仍在调查中的JVM的错误
答案 2 :(得分:1)
我在使用 java 在我的项目中运行一些特定的 dll 时遇到了这个异常,经过几个月调查我们的所有环境后解决了这个异常,如果有人仍然需要它,这里是链接。 EXCEPTION_ACCESS_VIOLATION in Jacob dll using VM in Jenkins pipeline
那里有我们尝试过的所有事情的描述,也许会有用。通过不仅返回到 java 版本,而且返回到特定的构建版本,问题得到解决。 (在我们的例子中是 java 8 build 141)
答案 3 :(得分:0)
我测试了你的代码;工作正常。
我的猜测是,这是由硬件或软件平台问题引起的。
答案 4 :(得分:0)
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7178093 (该网站将在两天内更新..)