Java程序中的'std :: bad_alloc'

时间:2016-08-08 19:27:18

标签: java jvm-crash alloc

我有一个java进程,我启动并运行了几天。这个过程的日志看起来很精细,直到过程的生命周期结束时,我看到以下两行,然后没有任何内容。

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

应该有一些关闭逻辑在进程结束时执行,但这两个日志行都是我看到的。

std::bad_alloc错误的原因是什么?我已经看过其他几个有关此错误的帖子,但它们都来自C ++程序员,而我使用的是Java,而不是C ++。这是否表示JVM中存在错误,还是由于某些与JVM相关的错误(如OutOfMemoryError?)而导致错误?

1 个答案:

答案 0 :(得分:1)

您已经耗尽了本机内存(与Java堆不同)。要解决这个问题,你需要了解你的哪些代码(或类路径中的jar)正在使用C ++并确保事情及时得到gc&#d。

例如,如果你没有打电话,你可能会遇到同样的问题: https://docs.oracle.com/javase/7/docs/api/java/util/zip/GZIPInputStream.html#close()