有包名
1.生成class
> javac myjniHelloJNI.java
2.生成.h文件
> javah -d include myini.HelloJNI
3.生成.dll文件
> gcc -I/opt/jdk/include -I/opt/jdk/include/linux -fPIC -shared -o HelloJNI.dll HelloJNI.c
4.运行java程序
> java myjni.HelloJNI
如果你这步发生问题,如果这步你收到java.lang.UnsatisfiedLinkError异常,可以通过如下方式指明共享库的路径:
java -classpath . -Djava.library.path='.' myjni.HelloJNI
不含包名的java程序编译步骤:
javac HelloJNI.java
javah -d include HelloJNI
gcc -I/opt/jdk/include -I/opt/jdk/include/linux -fPIC -shared -o libHelloJNI.so HelloJNI.c
java HelloJNI
如果有报错试试下面的命令
java -classpath . -Djava.library.path=. HelloJNI
+ javah -jni com.nutlet.activity.HelloJNI Error: Could not find class file for 'com.nutlet.activity.HelloJNI'.
提示这个报错的时候在javah 后面增加 -classpath ./ 就可以了。
初步判断是javah需要classpath路径