java调用c:多语言调用的 Java调用C/C++来源: 发布时间:星期一, 2009年2月23日 浏览:0次 评论:0
Java C/C 1.创建个类com.test.TestCall内容如下
package com.test; public TestCall { public native String getResponse(String request); }
2.编译得到TestCall.文件 命令javah com.test.TestCall(如果不好使前面执行句 path=.) 得到com_test_TestCall.h文件内容如下 /* DO NOT EDIT THIS FILE - it is machine generated */ # 3.新建C/C工程引入com_test_TestCall.h头文件 TestCall.cpp # "com_test_TestCall.h" JNIEXPORT j JNICALL Java_com_test_TestCall_getResponse (JNIEnv *pEnv, jobject obj, j jstr) { j response = pEnv->NewStringUTF("call C:"); jboolean isCpoy; const jchar *request = pEnv->GetStringChars(jstr,&isCpoy) ; //todo pEnv->ReleaseStringChars(jstr,request); response; } 编译成TestCall.dll 4.将TestCall.dll放到eclipse工程下(或者运行参数java -Djava.library.path=“dll目录”) 完整TestCall.java package com.test; public TestCall { { //dll名字 .loadLibrary("TestCall"); } public native String getResponse(String request); public void (String args) { TestCall call = TestCall; String message = call.getResponse("hello"); javax.swing.JOptionPane.showMessageDialog(null, message); } } 5.运行java弹出对话框就算成功了 当然现在有Java Native Access这个开源项目方便了我们 JNA里面不需要按照com_test_XX这种格式定义头文件只要定义个思路方法接口支持指针非常好用 TAG: Java JAVA java 语言 0
相关文章读者评论发表评论 |