javah 生成有包名的 .h 文件需要注意的地方

假如D盘下有个 t.java 文件 D:/test/t.java

1. 这个类没有导入包 生成 .h 文件很简单

命令行定位到该 java 文件夹下(这里有个小技巧 先打开该文件夹 然后再地址栏输入 cmd 按回车就能直接定位该位置)     

javac t.java

javah t

这样就生成 .h 头文件

2. 有包名的情况

比如上面的 t.java 有导入包名 package com.htest

首先 生成 .class 的方式不变 还是 在 t.java 文件所在的目录执行命令

javac t.java 生成 t.class 

然后再当前目录开始新建文件夹 包名多少层就建多少个文件夹

比如上面的 package com.htest 就要新建 com 文件夹 然后再 com 文件里面新建 htest 文件夹

最后把生成的 t.class 文件复制到 htest 文件夹下

在包名外的文件夹下执行 javah t 命令(重点)

不能进入包名里面的文件夹下执行 javah 命令。 因为该命令是从定位的文件夹开始寻找包名路径下的 .class 文件

比如我的包名是 com.htest 执行 javah 命令时我必须定位在 com 外的那层文件夹 也就是 test 文件夹 。因为执行命令的时候会开始以当前路径为起点开始寻找 com/htest 文件下是否有 .class 文件找到了就执行命令  如果你定位到 .class 文件所在目录 则执行命令的时候 从 .class 文件开始寻找是找不到的 。

// END

猜你喜欢

转载自blog.csdn.net/u013171212/article/details/83502091