给定一个类,例如:
class Position {
float x;
float y;
public static native long instance();
public static native float getX(long ptr);
public static native float getY(long ptr);
public static native long delete(long ptr);
}
在生成本机头文件时,我希望将与类的字段对应的结构定义包含在头文件中。就像是:
struct Position {
float x;
float y;
}
运行命令
javac -classpath bin -d . -h jni src/Position.java
使用 Java 11 或命令
javah src/Position
Java 8 不会生成结构。
我发现 javah文档中描述的所需行为(不确定它们当前的有效性)说明The .h file contains a struct definition whose layout parallels the layout of the corresponding class.
我想知道是否有可能用javac -h
. 如果没有,那是否有可能?如果有,改变的原因是什么?此外,我有什么选择?