Java基础知识——JNI入门经典
JNI是Java Native Interface的缩写,通过使用native方法,Java可以调用本地C/C++子程序。声明一个本地子程序的方法是:在方法名前添加native修饰,如
public native void myfun();
调用该子程序的方法为:
static{
System.loadLibrary("myfun");
}
在Windows上,上面的myfun即指包含用C/C++写的myfun()的实体的DLL——myfun.dll。下面以NativeDemo程序为例来说明怎样在Windows下(XP+VS2008+JDK1.6u17)使用JNI。
1. 编写源程序NativeDemo.java
NativeDemo.java中声明了一个本地子程序test():
public native void test();
该子程序从主程序获得int变量i的值,对其加倍,然后返回给主程序。具体代码如下:
// Using Native method
public class NativeDemo{
int i;
public static void main(String args[]){
NativeDemo ob=new NativeDemo();
ob.i=10;
System.out.println("This is ob.i before the native method: "+ob.i);
ob.test(); //call a native method
System.out.println("This is ob.i after the Native method: "+ob.i);
ob.test(); //call a native method
System.out.println("This is ob.i after the Native method: "+ob.i);
}
// declare native method
public native void test();
static{
// load DLL that contains static method
System.loadLibrary("NativeDemo");
}
}
2. 编译NativeDemo.java
javac NativeDemo.java
得到NativeDemo.class
3. 使用javah.exe生成NativeDemo.h
javah -jni NativeDemo
javah.exe在%JAVA_HOME%\bin下,生成的NativeDemo.h如下:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class NativeDemo */
#ifndef _I
相关文档:
Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流....本文的目的是为大家做一个简要的介绍。
......
目前以Eclipse为主的重量级开发工具大行其道.虽然极为方便.但软件安装对于系统配置不高的电脑或者小项目开发非常不利.在移植过程中还有配置问题.比较麻烦.因此对于一些超小项目,使用轻量级的开发方法,显得由为必要.所谓超轻量级,就是用最简单的工具完成JAVA系统的开发.在开发当中也可以了解 ......
装了win7以后重新配置了java的环境变量。
首先,JDK和JRE的区别:jdk(java development toolkit) jre(java run environment),前者就像是个java的编译器,后者提供一个运行环境,java虚拟机吧。一般只用装jdk就行了,里面自动会有个jre。
我的过程:
1. 先解压Eclipse,运行需要虚拟机
2. 安装jre6,不用任何 ......
1、集合其实可以看成为数组的扩展,它与数组的不同之处在于:
《1》 一个数组只允许存储一种类型的数据,而一个集合可以存储任一种对象类型数据;
简单的说一个集合类似一个 O ......
文章:Java和.NET两个世界的极点:赚钱和娱乐
作者 霍泰稳 发布于 2007年7月16日 上午3时4分
社区 .NET, Java 主题 Java+.NET集成, 互操作, 故事和案例分析 标签 SQL Server 2005, Spring框架
直到现在,在很多开发者社区里你都还能看到关于Java和.NET那个好,哪个容易学,哪个更有前景的讨论。其实这些争论严格来说, ......