我是使用JNI进行编程的新手,我无法运行我用Java编写的C ++方法。我正在关注this教程。我有一个cpp源文件“cpp.cpp”和一个java文件“Cpp.java”。我遵循的步骤是:
System.loadLibrary("libcpp")
创建了一个共享库。javac Cpp.java
编译代码。javah Cpp
创建C ++头文件。g++ -fPIC -shared cpp.cpp -o libcpp.so
编译此代码,并将共享库文件放在同一目录中。现在我尝试使用java Cpp
运行java代码但是我收到以下错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no libcpp in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at Cpp.main(Cpp.java:17)
我读了其他问题,但大部分问题都在Windows上运行,我正在使用Ubuntu这样做。请帮助。谢谢你提前。
以下是目录结构:
-rw-rw-r-- 1 piyush piyush 450 May 17 11:56 Cpp.h
-rw-rw-r-- 1 piyush piyush 32624 May 17 12:08 cpp.cpp
-rwxrwxr-x 1 piyush piyush 31237 May 17 13:38 libcpp.so
-rw-rw-r-- 1 piyush piyush 831 May 17 14:06 Cpp.java
-rw-rw-r-- 1 piyush piyush 676 May 17 14:07 Cpp.class