- 浏览: 403846 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (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 1876在使用executors并发编程时候需要注意,如果出现Thr ... -
java代码中动态添加程序执行时间日志
2012-10-26 09:52 2740在写java代码的过程中经常会遇到需要打印一个方法的执行 ... -
java process can not exited
2012-09-28 10:20 1117/** * User: weichun.zhan ... -
java单例模式在多线程环境下的测试
2012-07-23 22:24 1118java单例模式在多线程环境下的测试,进攻自己学习和复习用. ... -
JAVA获取CLASSPATH路径
2012-07-04 16:52 823http://www.blogjava.net/tbwshc/ ... -
计算机补码
2012-03-28 16:35 972名词解释: 补码:1 在计算机系统中,数值一律有补码 ... -
Java中HashMap排序和遍历 .
2011-12-02 17:24 9351HashMap排序 1、按照key排序 对于java中 ... -
java开源项目汇总
2011-05-17 15:42 986http://www.open-open.com/index. ... -
OperaMasks
2011-04-19 10:31 997demo:http://demo.operamasks.org ... -
1000个0-9的数字,查找出现次数最多的3个数字.并求这他们出现的次数.
2011-04-06 21:41 5493今天面试碰到 "1000个0-9的数字,查找出现次数 ... -
Java开源 Jsp标签库
2011-02-25 13:52 1734displytag 与Struts结合使用最出名的一个tag主 ... -
阅读优秀代码是提高开发人员修为的一种捷径
2011-02-24 10:57 906原文作者Alan Skorkin是一 ... -
线程池
2010-12-06 17:31 1027http://hi.baidu.com/ecspell/blo ... -
JAVA String.format 方法使用介绍
2010-10-25 13:36 3327JAVA String.format 方法使用 ... -
用 Eclipse 插件提高代码质量
2010-10-12 11:12 1008用 Eclipse 插件提高代码质量 参考文章. http: ... -
Java代码分析工具——Eclipse插件nWire 1.3发布
2010-09-26 17:34 3012近日,Eclipse插件nWire 1.3发布。nWire可以 ... -
归并算法详解
2010-07-28 13:03 1758MergeSort,归并排序。 [1 ... -
java util date转换成java sql date
2010-06-11 13:26 1849在util date转换成sqldate过程中可以使用new ... -
java获取操作系统类型
2010-05-14 17:12 2671判断当前java程序是运行在windows平台还是运行在lin ... -
Java:回调机制
2010-05-10 14:14 11331. 什么是回调函数 回调函数(callback ...
相关推荐
标题中的"NativeExcel 310 (d11)_SF.rar"表明这是一个关于NativeExcel组件的版本310,适用于Delphi开发环境的版本d11。NativeExcel是一款专为Delphi开发者设计的库,它允许程序员在应用程序中处理Excel文件,而无需...
出现org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z . 需要下载重新编译的NativeIO.java
标题“NativeExcel3.1.0FS.7z”表明这是一个关于NativeExcel的软件库的压缩包,版本为3.1.0,FS可能代表Final Stable或者特定的特性集。这个压缩包是针对Delphi开发者的,Delphi是一种流行的面向对象的编程语言,常...
在压缩包子文件的文件名“nativescript-vue-nativescript-vue-01e9d95”中,“nativescript-vue”再次强调了这是关于NativeScript和Vue结合的项目,而后面的“01e9d95”可能是一个版本号或Git提交哈希,代表了该项目...
SNIA(Storage Networking Industry Association,存储网络行业协会)发布的《Native NVMe-oF™ Drive Specification Version 1.0.1》(以下简称《规范》)是关于Native NVMe-oF™ Drive的技术标准。该标准描述了...
在React-Native应用开发中,实现色盘取色功能是一项常见的需求,特别是在涉及到用户自定义颜色设置或界面个性化设计的场景。React-Native提供了一种跨平台的方式来构建原生级别的移动应用,它允许开发者使用...
React Native是Facebook推出的一款用于构建原生移动应用的框架,它允许开发者使用JavaScript和React库来编写iOS和Android应用程序。《React Native小书》作为一本入门级别的开源书籍,旨在帮助初学者快速掌握React ...
Java中的Native方法是Java语言与本地(Native)代码交互的一种机制,主要涉及到Java的JNI(Java Native Interface)技术。JNI允许Java程序调用C、C++等非Java编写的代码,反之亦然,使得Java可以充分利用本地平台的...
标题 "NativeExcel3.1.0升级为支持DelphiXE11版本" 涉及的是一个关于Delphi编程环境的库更新,具体是NativeExcel3.1.0的升级,目的是使其兼容Delphi XE11开发工具。Delphi是一款强大的面向对象的 Pascal 编程语言...
关于`react-native-tabbar-android`的使用,首先需要安装该库,这可以通过npm(Node Package Manager)来完成。在项目根目录下运行`npm install react-native-tabbar-android`命令,然后在React Native项目中导入并...
关于RTMP协议,它是Adobe公司推出的一种实时数据传输协议,主要用于音视频的实时传输。RTMP协议能够提供低延迟的直播体验,是许多直播服务提供商首选的传输方式。通过React Native RtmpView,开发者可以利用这一特性...
通过这个组件,开发者可以构建出更加智能且用户友好的应用,比如在用户截图时自动保存至指定位置,或者弹出提示框提醒用户关于截图的规定。 总之,React Native的截屏监听组件结合了JavaScript的便利性和原生平台的...
"react native 各自控件 Demo" 指的是一系列关于React Native中各种组件的实际示例,通常包括按钮、文本输入、图像、列表视图等基本组件,以及更复杂的动画和手势识别组件。这些Demo可以帮助开发者更好地理解和应用...
6. 许可证文件:关于库的使用权限和条件,比如开源协议或商业许可证。 使用NativeExcel 3.1.0 for Delphi XE5的开发者可以利用其提供的API来创建复杂的工作表,处理大量数据,生成报表,甚至进行数据分析。这对于...
标题提到的内容包含了H5、React Native以及Native应用三种类型的技术,并指出这是关于它们的对比分析。根据描述和部分内容,我们可以对这三者的技术特点、应用范围、优缺点以及实际案例进行详细分析。 首先,H5技术...
在这个文件中,你会看到关于如何编译和链接`testService.cpp`和`testCallback.cpp`的规则,以及生成动态库`libpaxapijni.so`的配置。这个动态库是最终加载到Android应用中的,使得Java代码能够调用其中的native方法...
以下是一些关于JNI和`native`关键字的核心知识点: 1. **JNI头文件生成**:在编写Java类并声明`native`方法后,我们需要使用`javah`工具生成对应的JNI头文件。这个头文件包含了C/C++的函数原型,供我们实现本地方法...
前言 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
这个“reactnative_demo”很显然是一份关于ReactNative实战的示例代码,包含两个关键文件:`AlertSelected.js` 和 `example.js`。 `AlertSelected.js` 文件很可能是实现了一个自定义的警告对话框组件。在React...