c++ - JNI 从 c 调用 java 得到段错误(核心转储)

标签 c++ jvm java-native-interface segmentation-fault jvm-crash

我遵循了这个教程 http://www.ibm.com/developerworks/java/tutorials/j-jni/section3.html

我用

编译了cpp程序

g++ -o libSample2 -fPIC -shared -I/usr/lib/jvm/java-1.7.0-openjdk-amd64/include -I/usr/lib/jvm/java-1.7.0-openjdk-amd64/include/linux/ Sample2.cpp

我尝试运行 ./libSample2 但我得到了 “段错误(核心已转储)”

有什么想法吗?

最佳答案

谢谢各位,问题解决了。 我运行了这个命令

g++ -I /usr/lib/jvm/java-7-openjdk-amd64/include -I /usr/lib/jvm/java-7-openjdk-amd64/include/linux/ -L /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server -l jvm Sample2.cpp

但它没有用。然后我按如下方式运行它

g++ -I /usr/lib/jvm/java-7-openjdk-amd64/include -I /usr/lib/jvm/java-7-openjdk-amd64/include/linux/ -L /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server Sample2.cpp -l jvm -Wl,-rpath,/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server -o sample2

不管你信不信,问题出在 Ubuntu 版本上。由于某种原因,它不适用于上述命令。

关于c++ - JNI 从 c 调用 java 得到段错误(核心转储),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14702671/

相关文章:

c++ - (JNI)从cpp lib调用函数时的数据类型转换

c++ - 在 QT 中运行有延迟的函数

c++ - 打印 Mat 对象的值

c++ - 为什么 glGetProgramiv GL_ACTIVE_UNIFORMS 偶尔会返回垃圾并使我的程序崩溃?

java - 在 Elastic Beanstalk 上设置 G1GC 时出错

java - jbyteArray 和 jbyte 指针的区别

c++ - 为什么有人会用 float 乘法而不是除法

java - .c文件那个 "starts"的JVM?

java - 如何在 Java 中更优化地运行一个非常小的程序

java - 将 native (C) 指针保存到对象实例中——然后清理它