JNI 学习实录1

 

1. 编写 Test.java 放入c:/

 

package com.wang.jni;

public class Test{
 
 static {
  System.loadLibrary("Helloworld"); 
  }
  
  public native void output();
 
  public static void main(String[] args)
    {
      Test t =new Test();
      t.output();
     
    }
 
 
}

2. 编译javac -d . Test.java

 

3. 生成com_wang_jni_Test.h文件  javah com.wang.jin.Test

 

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_wang_jni_Test */

#ifndef _Included_com_wang_jni_Test
#define _Included_com_wang_jni_Test
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_wang_jni_Test
 * Method:    output
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_com_wang_jni_Test_output
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

 4.生成C 的dll库

 

1) 选择new->projects(选择Win32 Dynamic-Link Library,以Step 1中指定的库名Helloworld作为工程名)->OK->An ampty DLL project->Finish。

2) 选择Tools->Options->Directories(添加目录C:/Program Files/Java/jdk1.6.0_21/include和C:/Program Files/Java/jdk1.6.0_21/include/WIN32)。在这些目录中包含JNI所需的头文件。

3) 将Step 3生成的com_wang_jni_Test.h拷贝到WinMsgDll工程文件夹中。然后FileView中添加这个头文件。

4) 添加源文件Helloworld.cpp,内容如下: 

 

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <stdio.h>
#include <jni.h>
#include "com_wang_jni_Test.h"
JNIEXPORT void JNICALL Java_com_wang_jni_Test_output(JNIEnv *, jobject)
{
int i, j;
for (i=0; i<7; i++)
{
  for (j=0; j<=i; j++)
  {
    printf("*");
  }
  printf("/n");
}

 printf("Hello World! JNI");

}
  5) 编译生成Helloworld.dll文件。并将这个.dll文件拷贝到Step 1中说明的目录中

 

5. 执行java com.wang.jni.Test 生成结果


 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值