一、.java生成.class文件
可以有两种方式:
1、直接使用javac 类名(进入到类所在目录)
注意:如果提示'javac' 不是内部或外部命令,也不是可运行的程序的话,需要在环境变量里面的用户变量(不是系统变量哦)中的Path变量,新增%JAVA_HOME%\bin;
2、新增了JNI类以后,rebuild project,这样.class文件会在项目的\app\build\intermediates\classes\debug目录下生成。
二、.class生成.h文件(最坑的一步了)
我在这一步卡了半天,一直不行,总是提示:找不到“xxx.xxx.xxx”的类文件。内心接近崩溃~
最终还是摸索出来了,生成了.h文件。先进入classes目录下,然后执行了如下命令就可以了!(注意有一点.的)
E:\android_workspace\JNITest\app\build\intermediates\classes\debug>javah -classpath . -jni com.river.jnitest.SerialPort
参考博客:https://www.cnblogs.com/xieyuan/p/3787297.html
补充:
我的环境变量里面的系统变量 CLASSPATH的值为:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\rt.jar;%JAVA_HOME%\lib\dt.jar;
JAVA_HOME的值是jdk的路径:D:\river\jdk1.8
为了证明我是成功了的!粘贴一下代码:
//SerialPort.java
package com.river.jnitest;
import java.io.FileDescriptor;
public class SerialPort {
private native static FileDescriptor open(String path, int baudrate, int flags);
public native void close();
}