易截截图软件、单文件、免安装、纯绿色、仅160KB

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中初始化顺序(转)

(1)初始化的顺序(静态、非静态、final、变量、对象)
    对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。
我们也可以通过下面的测试代码来验证这一点:
Java代码:
public class InitialOrderTest {
......

超轻量级JAVA开发方法(一)

      目前以Eclipse为主的重量级开发工具大行其道.虽然极为方便.但软件安装对于系统配置不高的电脑或者小项目开发非常不利.在移植过程中还有配置问题.比较麻烦.因此对于一些超小项目,使用轻量级的开发方法,显得由为必要.所谓超轻量级,就是用最简单的工具完成JAVA系统的开发.在开发当中也可以了解 ......

java中字符型和整型的转换问题

众所周知,java中int型和char型数据不像c语言中那样可以任意转换,即不可以将一个int型变量自动转换为char型,如下面代码中的演示:
public class TestSort{
 public static void main(String args[]){
  int x='a';//不会产生编译错误,因为'a'赋给x是隐式转换
  System.out.println(x);
&nb ......

初学JAVA之二

1、 串操作:使用字符串存贮一个英文句子“Java is an object oriented programming
 language”。显示该句子,并算出每个单词的字母数和平均字母数,并按单词升序排列输出(不用数组,只用串操作)
public class homework21 {
   public static void main(String[] args) {
  &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号