如何使用javac或javah命令在JNI头文件中生成结构定义?

问题描述

给出一个类,例如:

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不会生成该结构。

我发现docs中描述的javah所需的行为(不确定它们当前的有效性)指出The .h file contains a struct definition whose layout parallels the layout of the corresponding class.

我想知道是否可以用javac -h实现我上面描述的内容。如果不可能,那么,改变的原因是什么?此外,我还有什么选择?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)