当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 使用javah 找不到类文件的解决方法

使用javah 找不到类文件的解决方法

2018年10月09日  | 移动技术网IT编程  | 我要评论

硅胶奶瓶好不好,中考服务平台,nod id

尝试在java中调用c++代码,使用javah生成.h文件时,一直提示找不到类文件。

我在eclipse中新建工程,写自己java调用的代码:

package com.tzy.c;

public class helloworld {

//声明本机类

public native void hello();

public static void main(string[] args) {

helloworld hellworld = new helloworld();

hellworld.hello();

}

//当装载类文件时执行一个的静态代码

static {

system.loadlibrary("hello");

}

}

注意:我这里的helloworld是放在com.tzy.c包中的(如果不放在包中,一般不会出现这种错误提示)。

先前我是这样做的(当然是错误的做法):

我使用命令提示符cd到我的.java源文件目录,我的是e:\eclipseworkspace\javac\src\com\tzy\c

然后我javac helloworld.java进行编译,当然这部没问题。

然后我javah helloworld就提示:错误:找不到'helloworld'的类文件

经过查资料,我发现javah后面应该是完整的类名。

正确的做法:

首先,使用命令提示符cd到.java源文件目录,使用javac进行编译

然后,cd到java项目的目录:e:\eclipseworkspace\javac\src

使用命令

这样就可以编译成功了

其实使用eclipse,在bin目录下已经存在class文件,所以我们这样直接cd到e:\eclipseworkspace\javac\bin

然后执行javah com.tzy.c.helloworld也行。

最后会生成名为com_tzy_c_helloworld.h的头文件,内容如下:

#include

#ifndef _included_com_tzy_c_helloworld

#define _included_com_tzy_c_helloworld

#ifdef __cplusplus

extern "c" {

#endif

jniexport void jnicall java_com_tzy_c_helloworld_hello

(jnienv *, jobject);

#ifdef __cplusplus

}

#endif

#endif

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网