利用JNI建立与C\C++的桥梁

javah - C 头文件和 stub 文件生成器
javah 从 Java 类生成 C 头文件和 C 源文件。这些文件提供了连接胶合,使 Java 和 C 代码可进行交互。

结构
javah [ options ] fully-qualified-classname. . .
javah_g [ options ] fully-qualified-classname. . .

说明
javah 生成实现本地方法所需的 C 头文件和源文件。C 程序用生成的头文件和源文件在本地源代码中引用某一对象的实例变量。.h 文件含有一个 struct 定义,该定义的布局与相应类的布局平行。该 struct 中的域对应于类中的实例变量。

头文件名以及在头文件中所声明的结构名都来源于类名。如果传给 javah 的类是在某个包中,则头文件名和结构名前都要冠以该包名。下划线 (_) 用作名称分隔符。

缺省情况下,javah 为每个在命令行中列出的类都创建一个头文件,且将该文件放在当前目录中。用 -stubs 选项创建源文件。用 -o 选项将所有列出类的结果串接成一个单一文件。

新的平台相关方法接口(Java 平台相关代码接口 (JNI))不需要头文件信息或 stub 文件。javah 仍可用于生成 JNI 风格的本地方法所需的本地方法函数原型。javah 在缺省情况下生成 JNI 风格的输出并将结果放在 .h 文件中。

javah_g 是 javah 的非优化版本,适合于与 jdb 之类的调试程序一起使用。

选项
-o 输出文件
将命令行中列出的所有类的头文件或源文件串接到输出文件中。-o 或 -d 两个选项只能选择一个。
 
-d 目录
设置 javah 保存头文件或 stub 文件的目录。-d 或 -o 两个选项只能选择一个。
 
-stubs
使 javah 从 Java 对象文件生成 C 声明。
 
-verbose
指明长格式输出,并使 javah 将所生成文件的有关状态的信息输出到标准输出设备中。
 
-help
输出 javah 用法的帮助信息。
 
-version
输出 javah 的版本信息。
-jni
使 javah 创建一输出文件,该文件包含 JNI 风格的本地方法函数原型。这是缺省输出,所以 -jni 的使用是可选的。
 
-classpath 路径
指定 javah 用来查询类的路径。如果设置了该选项,它将覆盖缺省值或 CLASSPATH 环境变量。目录用分号分隔。因此,路径的一般格式是:
   .;<您的路径>

例如:

   .;C:\users\dac\classes;C:\tools\java\classes

-bootclasspath 路径
指定加载自举类所用的路径。缺省情况下,自举类是实现核心 Java 平台的类,位于 jre\lib\rt.jar 和 jre\lib\i18n.jar 中。
 
-old
指定应当生成旧 JDK1.0 风格的头文件。
 
-force
指定始终写输出文件。
环境变量
CLASSPATH
用于为系统提供用户定义类的路径。目录用分号分隔,例如:
   .;C:\users\dac\classes;C:\tools\java\classes

你可能感兴趣的:(C++,c,C#,jni)