日期:2014-05-20  浏览次数:20739 次

javah 该怎么用呀??
hellodll.java在dlltest包下,
而且已经有了hellodll.class文件
在cmd中dlltest的外面一个文件夹,用 javah -classpath %CLASSPATH% dlltest.hellodll
还是报错,为什么呀,不是这样用么?

------解决方案--------------------
举例说明吧,你的hellodll.java在dlltest文件夹下面 对吧?加入上一层的文件夹叫test 那么整个文件夹就是test/dlltest/hellodll.java 对吧?你应该到test文件夹下面输入javah -classpath %CLASSPATH% dlltest/hellodll.java 看这样行吗?
------解决方案--------------------
javah -classpath . -verbose dlltest.hellodll

-verbose 能看多一点信息,可以不用。
------解决方案--------------------
E:\Projects\test\test\bin>javah -classpath . -verbose dlltest.hellodll
[ Search Path: C:\Program Files\Java\jdk1.6.0_02\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_02
\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.6.0_
02\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_02\
jre\lib\charsets.jar;C:\Program Files\Java\jdk1.6.0_02\jre\classes\. ]
[No need to update file dlltest_hellodll.h]
[源文件的搜索路径: .]
[类文件的搜索路径: C:\Program Files\Java\jdk1.6.0_02\jre\lib\resources.jar,C:\Program Files\Java\jdk1.6
.0_02\jre\lib\rt.jar,C:\Program Files\Java\jdk1.6.0_02\jre\lib\sunrsasign.jar,C:\Program Files\Java\jdk1
.6.0_02\jre\lib\jsse.jar,C:\Program Files\Java\jdk1.6.0_02\jre\lib\jce.jar,C:\Program Files\Java\jdk1.6.
0_02\jre\lib\charsets.jar,C:\Program Files\Java\jdk1.6.0_02\jre\classes,C:\Program Files\Java\jdk1.6.0_0
2\jre\lib\ext\dnsns.jar,C:\Program Files\Java\jdk1.6.0_02\jre\lib\ext\localedata.jar,C:\Program Files\Ja
va\jdk1.6.0_02\jre\lib\ext\sunjce_provider.jar,C:\Program Files\Java\jdk1.6.0_02\jre\lib\ext\sunmscapi.j
ar,C:\Program Files\Java\jdk1.6.0_02\jre\lib\ext\sunpkcs11.jar,.]
[正在装入 .\dlltest\hellodll.class]// 这一行应该能给你一些提示吧?
[正在装入 C:\Program Files\Java\jdk1.6.0_02\lib\ct.sym(META-INF/sym/rt.jar/java/lang/Object.class)]
[正在装入 C:\Program Files\Java\jdk1.6.0_02\lib\ct.sym(META-INF/sym/rt.jar/java/lang/Throwable.class)]
[正在装入 C:\Program Files\Java\jdk1.6.0_02\lib\ct.sym(META-INF/sym/rt.jar/java/lang/Class.class)]
[在688 毫秒内完成]
------解决方案--------------------
用法:javah [选项] <类>

其中 [选项] 包括:

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

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

-classpath 是用于装入类的路径
javah -classpath . -verbose dlltest.hellodll 
这个命令种的“."说明是从当前路径开始寻找,从-verbose的输出可以看出:
[正在装入 .\dlltest\hellodll.class]