2013-02-05 4 views
0

내가이 튜토리얼 http://www.ibm.com/developerworks/java/tutorials/j-jni/section3.htmlJNI 호출 자바 분할 오류 (코어 덤프)

을 따라 내가 사용하는 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를 실행하려고했지만 나는 을 가지고있다 "분할 붕괴 (코어 덤프)"

어떤 생각?

+0

프로그램의 할당 된 주소 밖에있는 메모리 영역에 액세스하려고하면 일반적인 오류가 발생합니다. valgrind를 사용하여 디버그 –

+0

대부분은 당신이 놓친 것이므로 다른 튜토리얼을 시도 할 수 있습니다. JNI와 함께 플레이 할 수있는 기회를 얻었습니다. 내 경험에 따르면이 단계에서 누락 된 단계가 발생할 경우에 대비하여 올바르게 각각을 따라 갔는지 확인할 수 있습니다. 다른 튜토리얼을 시도해보십시오. http://www.codeproject.com/Articles/22881/How-to-Call-Java-Functions-from-C-Using-JNI – Saqlain

답변

1

감사합니다. 문제를 발견했습니다. 이 명령을 실행했습니다. 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

믿거 나 말거나, 문제를 일으킨 우분투 버전이었습니다. 어떤 이유로 위의 명령에 대해 작동하지 않습니다.

+0

이렇게하면 Linux Mint의 문제가 해결됩니다. 감사. –