您的位置:首页 > 编程语言 > Java开发

Javah 使用时报错:找不到类

2013-05-28 17:11 330 查看
初学java,想使用JNI,在用javah生成头文件时,总是报错找不到类;

看了javah的help,本来是很简单的,但是由于自己概念含糊,所以出错。

javah的命令行帮助:

用法:javah [选项] <类>

其中 [选项] 包括:

-help 输出此帮助消息并退出

-classpath <路径> 用于装入类的路径

-bootclasspath <路径> 用于装入引导类的路径

-d <目录> 输出目录

-o <文件> 输出文件(只能使用 -d 或 -o 中的一个)

-jni 生成 JNI样式的头文件(默认)

-version 输出版本信息

-verbose 启用详细输出

-force 始终写入输出文件

使用全限定名称指定 <类>(例

如,java.lang.Object)。

假如有这样的类:

[java] view
plaincopy

package mwic32;

public class Main {

/**

*

* @param CommPort 串口端口

* @return

*/

public native String GetICSN(int CommPort);

static

{

System.loadLibrary("MwIc32.dll");

}

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

}

}

假如项目目录是:F:/_WorkSpace_/NetBeansProjects,那么编译后生成的class文件会位于F:/_WorkSpace_/NetBeansProjects/MwIC32/build/classes/mwic32

现在希望用JAVAH生成头文件。

javah -classpath F:/_WorkSpace_/NetBeansProjects/MwIC32/build/classes mwic32.Main

也就是说,指定类的路径时,应该以包所在路径为准,而不是具体类所在的子目录

注:放在包里面的类和方在默认包里面的类,javah生成的.h文件是不一样的,函数名称含有包的路径,所以不同包的类不可以公用.h文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: