1. 就这样一个样板程序,路径为c:\del\javatest.java
package com.test;
public class javatest
{
public static void test(String[] args)
{
}
}
C:\del>javah javatest
错误: 找不到 'javatest' 的类文件。
C:\del>javah com.test.javatest
错误: 找不到 'com.test.javatest' 的类文件。
C:\del>javac javatest.java
C:\del>javah javatest
错误: 找不到 'javatest' 的类文件。
C:\del>javah javatest.class
Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: javatest.class
at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:129)
at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:107)
at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:64)
at com.sun.tools.javah.JavahTask.run(JavahTask.java:503)
at com.sun.tools.javah.JavahTask.run(JavahTask.java:329)
at com.sun.tools.javah.Main.main(Main.java:46)
C:\del>javah -d c:\del javatest
错误: 找不到 'javatest' 的类文件。
C:\del>javah -d c:\del com.test.javatest
错误: 找不到 'com.test.javatest' 的类文件。
说明你的类所在包不对。
c:\del\javatest.java
你的目录和包不对应啊,这个包不存在的吧。
由于javah以后生成的.h文件需要包名+类名,所以必须在包括全包名的目录下执行javah命令,也就是项目\src\在或者项目\bin\classe\下执行 javah 包名.类名的命令,
比如:在src下或者classe文件夹下执行
javah com.test.javatest
最后会在执行命令的路径下面生成.h文件。
已经搞定了。回复这么快呀,赞。