我一直在从事一个视觉项目,并在 JNI 中使用 Java 中的一些 C++ 库。
操作系统: Ubuntu 12.04
在我的项目中,我使用 boost 库来生成随机数。但有时我会遇到如下异常:
Core dum140002367330048 also had an error]
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f54f72a615a, pid=11979, tid=140002352568064
#
# JRE version: Java(TM) SE Runtime Environment (7.0_67-b01) (build 1.7.0_67-b01)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.65-b04 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C [libCBIR.so+0x3215a] boost::random::mersenne_twister_engine<unsigned int, 32ul, 624ul, 397ul, 31ul, 2567483615u, 11ul, 4294967295u, 7ul, 2636928640u, 15ul, 4022730752u, 18ul, 1812433253u>::operator()()+0x3a
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
当我在 StackOverflow 上搜索这个时,我发现了一些与 IDE(Eclipse)相关的问题。该应用程序独立于 IDE。因此,解决方案也必须独立于 IDE。有任何想法吗?
原文由 Omurhan Soysal 发布,翻译遵循 CC BY-SA 4.0 许可协议
就我而言,发生此错误是因为我为我的项目使用了错误的 Java 版本。我应该使用 Java 11,而我使用了 Java 8。