Javah相关错误,如下图所示:
解决办法:
用javah生成java调用C++语言用的头文件时出错;首先简单地介绍javah命令的使用
假设我们已经有了这个类,准备用它生成调用C语言的头文件。另外,这个Java文件是在路径“f:\workspace\HelloWorld\src”下,包“package cn.nlp.demo;”中的
package cn.nlp.demo;
class HelloWorld {
public native void displayHelloWorld(); // 一个外部实现的方法
static {
System.loadLibrary("hello"); // 声明所调用的库名称hello.dll
}
public static void main(String[] args) {
new HelloWorld().displayHelloWorld();
}
}
1、首先我们要编译一下这个类,以便得到类对应的*.class
在目录“f:\workspace\HelloWorld\src\cn\nlp\demo”下执行命令
javac Helloworld.java
即可生成Helloworld.class文件在当前目录下以及“f:\workspace\HelloWorld\bin\cn\nlp\demo”下。
2、javah命令编写
f:\workspace\HelloWorld\bin>javah -classpath . -jni cn.nlp.demo.HelloWorld
javah中各个参数的意思分别为:
如果没有配置环境变量中classpath的位置的话,或者不知道怎么配置的话,就一定要在工程的根目录下执行javah命令
注意到我们的命令符的执行位置是源代码目录“f:\workspace\HelloWorld\bin>”
-classpath 后面的路径是指包“cn.nlp.demo”所在的根路径(如下图所示)
-jni 后面的路径是“包名+类名”