我遵循了这个教程 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/