硅胶奶瓶好不好,中考服务平台,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
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论