- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java 呼叫C组件是否一定使用JNI介面呢.doc
許多人問道:Java 呼叫C組件只能使用JNI呢? 產生JNI 的介面定義檔(.h)時是否一定先寫個.java檔,之後經過javah程式去轉換,才能得出.h的介面定義檔呢? 兩者的答案都是:不一定。產生JNI 的介面定義檔(.h)正常的程序是:
Step-1. 撰寫.java的介面定義檔,例如:
?
?
Step-2. 轉譯為.class的檔。
Step-3. 使用javah來產出.h介面定義檔:
/* ----- com_misoo_gx06_NativeJniAdder.h 內容 ----- */
/* DO NOT EDIT THIS FILE - it is machine generated */
#include jni.h
/* Header for class com_misoo_gx06_NativeJniAdder */
#ifndef _Included_com_misoo_gx06_NativeJniAdder
#define _Included_com_misoo_gx06_NativeJniAdder
#ifdef __cplusplus
extern C {
#endif
/*
* Class: com_misoo_gx06_NativeJniAdder
* Method: newObject
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_com_misoo_gx06_NativeJniAdder_newObject
(JNIEnv *, jclass);
/*
* Class: com_misoo_gx06_NativeJniAdder
* Method: execute
* Signature: (JII)J
*/
JNIEXPORT jlong JNICALL Java_com_misoo_gx06_NativeJniAdder_execute
(JNIEnv *, jclass, jlong, jint, jint);
#ifdef __cplusplus
}
#endif
#endif
?
之後,就可以寫com_misoo_gx06_NativeJniAdder.c程式碼了。
?
對於C開發者而言,還要先寫個 .Java介面定義程式,心裡似乎怪怪的,恨不得親自寫上述的.h標頭檔。但是,當介面所含的功能很多、參數也多時,手寫就很容易出錯。Java這邊也難以捉摸如何呼叫 C組件。
?
至於,JNI之外還有其他的Java與C模組間的標準介面嗎?當然有,例如我寫的第2本 Android書裡,所舉的例子,就利用JDBC介面去呼叫俄羅斯開發的嵌入式資料庫系統。例如:
/* ----- ac01.java 程式碼 ------*/
package com.misoo.pkxx;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TextView;
public class ac01 extends Activity {
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = new TextView(this);
tv.setTextColor(Color.WHITE); tv.setTextSize(16);
setContentView(tv);
tv.append(\n---------------------------------------------------------);
try {
Driver drv = (Driver)Class.forName(
com.relx.jdbc.LinterDriver).newInstance()
您可能关注的文档
- handout2氧族元素.ppt
- HCPL-0738高速数字 CMOS 光电耦合器.doc
- HeartBeat+PHP+MySQL双机热备自动切换配置测试.doc
- HERO200 刷机 全过程2.doc
- HG23006-92有毒气体检测报警仪技术条件及检验方法.doc
- HITS新登场!抗菌防敏商品08-P326.doc
- HJH-018铅酸蓄电池充电器说明书.doc
- HK2000系列全自动振动时效装置操作使用说明书.doc
- Hollywood Demons 改.ppt
- HOT氧辽溶栓术.ppt
- 2023黔西南州公务员行测及参考答案详解【A卷】.docx
- 执业药师之《西药学综合知识与技能》题库整理复习资料带答案详解(巩固).docx
- 2023年度文化教育职业技能鉴定考试黑钻押题及参考答案详解(A卷).docx
- 2023年眉山市公务员行测真题附参考答案详解【基础题】.docx
- 2023德州市公务员行测含答案详解【实用】.docx
- 2023贵阳市公务员行测(全国通用)附答案详解.docx
- 2023年淮北市公务员行测真题附参考答案详解【B卷】.docx
- 2023年度粮油食品检验人员预测复习精编附答案详解.docx
- 2025年广西桂林市全州县国土资源局招考聘用模拟题二.docx
- QMS质量管理体系国家注册审核员考试基础知识审核知识真题及答案.docx
最近下载
- 人教版初中生物会考试卷及答案.pdf VIP
- 2023年海南师范大学软件工程专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- 2023年四川省广元市中考地理试题卷(含答案详解).docx
- 2023年海南师范大学软件工程专业《数据结构与算法》科目期末试卷A(有答案).docx VIP
- 广西师范大学2020-2021学年《认知心理学》期末考试试卷(B卷)含参考答案.docx
- 羊常见疾病防治.ppt VIP
- 国开期末考试3987《Web开发基础》机考试题及答案(李老师第5套).pdf VIP
- 2024年怀化市靖州苗族侗族自治县六年级下学期小升初真题精选语文试卷含答案.doc VIP
- 2023年海南师范大学软件工程专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 2025年社区工作者招聘考试题库及答案解析.docx VIP
文档评论(0)