当出现问题 Error: Could not find class file for ‘HelloJNI’.
有可能是因为以下两个文件在同一个目录下导致的。
wzp830@ts:~/test/jni$ tree
.
├── HelloJNI.class
└── HelloJNI.java
0 directories, 2 files
所以,只需要将 HelloJNI.class 文件删除,然后执行即可。
wzp830@ts:~/test/jni$ rm -rf HelloJNI.class
wzp830@ts:~/test/jni$ javah -jni HelloJNI
wzp830@ts:~/test/jni$ tree
.
├── HelloJNI.h
└── HelloJNI.java
0 directories, 2 files
此时,就可以执行成功,然后再执行javac即可。
wzp830@ts:~/test/jni$ javac HelloJNI.java
wzp830@ts:~/test/jni$ tree
.
├── HelloJNI.class
├── HelloJNI.h
└── HelloJNI.java
0 directories, 3 files
结论:出现这种错误时,只需要将执行顺序调换一下即可,或者将.class文件移动到别的目录下即可。