我研究了几个与这个问题类似的例子,但我还没有找到一个可以解决我的问题的例子。我只是尝试使用 native 方法执行我的第一个程序。我没有将程序存储在包的层次结构中,因为我试图在第一个示例中使其尽可能简单。以下是所有内容的存储方式:
我有一个名为 NativeDemo 的类。它存储在C:/JavaFiles/demo/中。我编译了该程序,并将 .class 文件存储在同一文件夹中。当我尝试在此程序上调用 javah 命令时,它告诉我找不到类文件。你能告诉我我做错了什么吗?
我的javah命令存储在我的JDK中,存储位置如下:C:/jdk1.0.7_04/bin/
在命令提示符的命令行上,我键入:
C:\JavaFiles\demo>C:\jdk1.7.0_04\bin\javah -jni NativeDemo 还尝试了 C:\JavaFiles\demo>C:\jdk1.7.0_04\bin\javah.exe -jni NativeDemo
当我这样做时,它告诉我找不到类文件。这与编译时使用的路径相同,它找到文件、编译并创建 .class 文件,没有任何问题。
请帮忙。谢谢。
最佳答案
您可能需要在命令行上向 javah
提供 -classpath
参数。设置类路径。 (javah
的 -classpath
参数的行为与其他 Java 工具的行为相同;例如 java、javac、javap 等。如果您不了解类路径,阅读 this page 和 this page 。)
关于java - 使用javah创建.h文件,出现错误 "Could not find class file for NativeDemo",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11270926/