Javah 使用时报错:找不到类

初学java,想使用JNI,在用javah生成头文件时,总是报错找不到类;

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

javah的命令行帮助:

 


 

 


用法:javah [选项] <类>

其中 [选项] 包括:

        -help                                    输出此帮助消息并退出
        -classpath <路径>                用于装入类的路径
        -bootclasspath <路径>         用于装入引导类的路径
        -d <目录>                             输出目录
        -o <文件>                             输出文件(只能使用 -d 或 -o 中的一个)
        -jni                                       生成 JNI样式的头文件(默认)
        -version                               输出版本信息
        -verbose                              启用详细输出
        -force                                   始终写入输出文件

使用全限定名称指定 <类>(例
如,java.lang.Object)。


 

 

假如有这样的类:

 

[java]  view plain copy
  1. package mwic32;  
  2. public class Main {  
  3.     /** 
  4.      * 
  5.      * @param CommPort 串口端口 
  6.      * @return 
  7.      */  
  8.     public native String GetICSN(int CommPort);  
  9.     static  
  10.     {  
  11.         System.loadLibrary("MwIc32.dll");  
  12.     }  
  13.     /** 
  14.      * @param args the command line arguments 
  15.      */  
  16.     public static void main(String[] args) {  
  17.         // TODO code application logic here  
  18.     }  
  19. }  

 

假如项目目录是: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文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值