- 浏览: 395864 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (144)
- java (25)
- hibernate (2)
- spring (6)
- struts (1)
- oracle (14)
- mysql (3)
- jdbc (1)
- 面试经历 (0)
- linux (12)
- 工具小技巧 (7)
- 个人随笔 (0)
- 设计模式 (5)
- jsf (0)
- ejb3.0 (1)
- Web (3)
- jsp&servlet (1)
- Ruby (2)
- JQuery (4)
- 测试 (1)
- javascript (12)
- Android (7)
- asp.net (0)
- php (0)
- 职业发展 (3)
- 励志 (0)
- Struts2 (1)
- CSS (1)
- other (2)
- 性能优化 (1)
- CURL (1)
- scala (2)
- Nginx 配置文件详解 (1)
- resin (1)
- python (1)
- 开源中最好的Web开发的资源 (1)
- hadoop (1)
- idea (2)
- redis (1)
- git (1)
- rails (1)
- tomcat (1)
- springmvc (1)
- VLC (1)
- nginx (1)
- ffmpeg (2)
- tools (1)
最新评论
-
happy.future:
这个注册码好用的,记录了一下 http://www.danie ...
java IntelliJ IDEA 13 注册码 IDEA序列号 License Key -
lpyy00892012:
有问题啊,下拉框会变小啊
jquery easyui三级联动 -
怪兽加outman:
个人还是比较看好GUI Design Studio的,分享一个 ...
推荐两个界面原型设计工具--GUIDesignStudio 和 Mockups For Desktop -
zhanwc:
xzz7175327 写道感谢、、、十分有用!不客气
Css圆角边框 -
xzz7175327:
感谢、、、十分有用!
Css圆角边框
adj.
1. 出生地的, 故乡的, 本国的
2. 当地(人)的; 原产于某地的
3. 天生的, 有天赋的
4. 土著的;土著人的
5. 原产于某地的;土产的;当地的
n.
1. 当地人, 本地人
2. 出生于某国(或某地)的人
3. (旧时欧洲人用以称呼先于白人居住在某地的人)土著
4. 本地的动物(或植物)
==========================================================
用native关键字修饰的方法,通俗点来说就是靠其它语言来实现的方法。一般是由C++语言通过JNI接口实。Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。通过native标注的方法,告诉虚拟机,需要委派操作系统去完成。此方法存在于DLL动态连接库中。
详细解释:
本文介绍使用native方法扩展Java程序的功能:
可以将native方法比作Java程序同C程序的接口,其实现步骤:
1、在Java中声明native()方法,然后编译;
2、用javah产生一个.h文件;
3、写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);
4、将第三步的.cpp文件编译成动态链接库文件;
5、在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在Java中被访问了。
JAVA本地方法适用的情况
1.为了使用底层的主机平台的某个特性,而这个特性不能通过JAVA API访问
2.为了访问一个老的系统或者使用一个已有的库,而这个系统或这个库不是用JAVA编写的
3.为了加快程序的性能,而将一段时间敏感的代码作为本地方法实现。
首先写好JAVA文件
package com.hode.hodeframework.modelupdate;
public class CheckFile{
public native void displayHelloWorld();
static {
System.loadLibrary("test");
}
public static void main(String[] args){
new CheckFile().displayHelloWorld();
}
}
然后根据写好的文件编译成CLASS文件
然后在classes或bin之类的class根目录下执行javah -jni com.hode.hodeframework.modelupdate.CheckFile,就会在根目录下得到一个com_hode_hodeframework_modelupdate_CheckFile.h的文件
然后根据头文件的内容编写com_hode_hodeframework_modelupdate_CheckFile.c文件
#include "CheckFile.h"
#include
#include
JNIEXPORT void JNICALL
Java_com_hode_hodeframework_modelupdate_CheckFile_displayHelloWorld(
JNIEnv *env, jobject obj){
printf("Hello world!");
return;
}
之后编译生成DLL文件如“test.dll”,名称与System.loadLibrary("test")中的名称一致
vc的编译方法:cl -I%java_home%include -I%java_home%includewin32
-LD com_hode_hodeframework_modelupdate_CheckFile.c -Fetest.dll
最后在运行时加参数-Djava.library.path=[dll存放的路径]
发表评论
-
Executors的Thread table can't grow past 16383 threads异常
2013-01-30 12:50 1814在使用executors并发编程时候需要注意,如果出现Thr ... -
java代码中动态添加程序执行时间日志
2012-10-26 09:52 2641在写java代码的过程中经常会遇到需要打印一个方法的执行 ... -
java process can not exited
2012-09-28 10:20 1070/** * User: weichun.zhan ... -
java单例模式在多线程环境下的测试
2012-07-23 22:24 1061java单例模式在多线程环境下的测试,进攻自己学习和复习用. ... -
JAVA获取CLASSPATH路径
2012-07-04 16:52 783http://www.blogjava.net/tbwshc/ ... -
计算机补码
2012-03-28 16:35 928名词解释: 补码:1 在计算机系统中,数值一律有补码 ... -
Java中HashMap排序和遍历 .
2011-12-02 17:24 9309HashMap排序 1、按照key排序 对于java中 ... -
java开源项目汇总
2011-05-17 15:42 946http://www.open-open.com/index. ... -
OperaMasks
2011-04-19 10:31 925demo:http://demo.operamasks.org ... -
1000个0-9的数字,查找出现次数最多的3个数字.并求这他们出现的次数.
2011-04-06 21:41 5404今天面试碰到 "1000个0-9的数字,查找出现次数 ... -
Java开源 Jsp标签库
2011-02-25 13:52 1692displytag 与Struts结合使用最出名的一个tag主 ... -
阅读优秀代码是提高开发人员修为的一种捷径
2011-02-24 10:57 864原文作者Alan Skorkin是一 ... -
线程池
2010-12-06 17:31 984http://hi.baidu.com/ecspell/blo ... -
JAVA String.format 方法使用介绍
2010-10-25 13:36 3291JAVA String.format 方法使用 ... -
用 Eclipse 插件提高代码质量
2010-10-12 11:12 957用 Eclipse 插件提高代码质量 参考文章. http: ... -
Java代码分析工具——Eclipse插件nWire 1.3发布
2010-09-26 17:34 2970近日,Eclipse插件nWire 1.3发布。nWire可以 ... -
归并算法详解
2010-07-28 13:03 1723MergeSort,归并排序。 [1 ... -
java util date转换成java sql date
2010-06-11 13:26 1808在util date转换成sqldate过程中可以使用new ... -
java获取操作系统类型
2010-05-14 17:12 2601判断当前java程序是运行在windows平台还是运行在lin ... -
Java:回调机制
2010-05-10 14:14 10761. 什么是回调函数 回调函数(callback ...
相关推荐
出现org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z . 需要下载重新编译的NativeIO.java
openRTB文档,关于native格式
《React Native小书》是一本关于React Native的入门向的开源书籍,希望这本书可以帮助更多的人学会React Native 并能够开发自己的App
这是一本关于Reactive Native入门级的教程,格式为pdf高清版,方便阅读和复制其中内容,每个知识点均有示例代码,对于想上手Reactive Native的朋友是个不错的选择。
前言 xi 第1章 初识React Native 1 1.1 React Native 的优点 2 1.2 风险和缺点 4 1.3 小结 4 第2章 React Native 工作原理 5 2.1 React Native 是如何工作的 5 2.2 渲染周期 7 ...关于封面 221
Android关于HTML页面与Native方法相互调用
关于iOS部分可以参考vczero的lession文章 > React-Native 是Android端实现实现动态部署的另一种思路,绕过dexLoad【一些现有的Android插件框架】。 > 是在开发效率和用户体验间做的一种权衡。 > React-native使用JS...
关于React Native的一些讨论列表
我们在开发类似于智能灯控制功能时候经常会用到色盘取色的需求,于是我用RN写了色盘取色功能
NULL 博文链接:https://weick.iteye.com/blog/891613
本程序功能:React-Native中原生模块向JavaScript前端发送事件。 说明如下: 首先,由RN中文网关于原生模块(Android)的介绍可以看到,RN前端与原 生模块之间通信,主要有三种方法: (1)使用回调函数Callback,...
这是一个关于react native的简单入门demo,只给了主要的js文件代码,并不是整个项目 原文链接:https://blog.csdn.net/qq_42589862/article/details/99644561
一个关于react-native 的demo, 各种控件比较齐全,基于2018-2-22最新的RN写就!
android增量更新native方法c实现部分,参考我的博客里关于增量更新的介绍
基于react-native 编写的关于宠物的App源码-课程设计.zip 基于react-native 编写的关于宠物的App源码-课程设计.zip 基于react-native 编写的关于宠物的App源码-课程设计.zip 此项目由React-Native编写,用于联系RN的...
openjdk 8关于windows的native方法的那部分源代码 openjdk 8关于windows的native方法的那部分源代码
关于hadoop问题: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 解决本地库问题
本文介绍了VSCode 配置React Native开发环境的方法,分享给大家,具体如下: 1.安装VSCode 2.安装插件 ...安装完成后 按F1可以看到命令里多了很多关于React Native的选项 React Native Command 3
从网上下完get和set程序之后是不能够直接用的,需要按照要求配置一下native协议,这样flightgear才能够通过udp收发数据,网上关于flightgear的资料特别少,我也是搞了好几天才弄明白协议怎么配置,都在文档里啦
Tap The Number 是一款简单的 React-...即使开发这款游戏并没有花费太多时间(我猜我应该投入大约 20 个小时),这也是一次有趣的旅程,我想分享一些技巧和一些关于我在其过程中发现的复杂性的信息发展。 效果展示: ...