Java 如何调用C的链接库
这里以我自己写的一个程序为例:
第一步:
首先建立一个标准的java工程,如:sssss,在sssss中新建类aaaa
然后添加代码:
//这里是你想要使用的函数的声明,注:函数名要在这里定义,因为后面要使用这个文件//生成C的头文件,然后再C里面具体实现该方法
public native int ProgrammeStart();
public native int DrawBalesStart();
static{
System.loadLibrary("JavaDLL");//这里JavaDLL是待会要创建的C的DLL名字
}
public static void main(String[] args){
aaaa s = new aaaa();
s.ProgrammeStart();
s.DrawBalesStart();
}
至此Java工程里面的工作已经做完了,接下来我们就要来具体实现C的链接库了。
第二步:
首先找到刚才新建的Java工程将其中的src目录下的.java文件,将其拷贝到桌面上新建的一个文件夹里,如123(也可以直接在该文件夹里操作);
接下来运行cmd中使用cd指令进入到123中,执行javac aaaa.java,则文件夹中生成aaaa.class文件;然后在123中再新建一个文件夹sssss(即java中包的名称)并将class文件放进去,接着执行指令javah sssss.aaaa,则产生sssss_aaaa.h文件。文件内容如下:
至此第二步就全部完成了
第三步:建立VC Win32DLL程序空工程JavaDll(这里的工程名使用上面LoadLibrary(“”)中的名称),不包含任何文件
首先引入第二步生成的sssss_aaaa.h文件(记得把该文件拷贝到本工程目录下),再建立对应的CPP文件,如sssss_aaaa.cpp;
然后,将方法声明拷贝到cpp文件中实现,如:
JNIEXPORT jint JNICALLJava_sssss_aaaa_ProgrammeStart (JNIEnv*, jobject)
{
//具体实现
}
最后编译生成DLL(见Debug文件夹)。
注:编译时可能会提示jni错误,这是因为没有包含jni库的路径,在工具》选项》目录》Include Files 中添加:(这是jni头文件的目录所在根据自己java的安装位置适当修改)
C:\Program Files\Java\jdk1.8.0_25\include\win32
C:\Program Files\Java\jdk1.8.0_25\include
第四部:
将编译好的DLL文件拷贝到Java工程目录下并直接运行即可(即与以下两个文件同目录):
.project
.classpath
总算弄完了,大家做个参考吧!!!!!!!!!