JNI学习入门1
来源:互联网 发布:js防水涂料颜色 编辑:程序博客网 时间:2024/05/16 08:01
Java部分样例:
public class HelloWorld {
static {System.loadLibrary("HelloWorldDll");//HelloWorldDll为要加载的dll文件名
}
public native static void MyMethod();//自定义的本地方法
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new HelloWorld().MyMethod();//调用
}
}
接下来编译成clss文件,命令行到class的目录下:cd .... ,javah 类目(在这里也就是HelloWorld)
如果成功的话就会生成一个HelloWorld.h的头文件,可以点击来看一下:
/*********************************************************************/
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloWorld
* Method: MyMethod
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_MyMethod
(JNIEnv *, jclass);
#ifdef __cplusplus
}
#endif
#endif
/******************************************************/
暂且不管是什么样、
打开VC++6.0,新建工程,选择Win32 Dynamic-Link Library 输入工程名(这里就是我们在上面说的HelloWorldDll)
把HelloWorld.h拷贝到工程下。
VC++工程中在Header Files点击右键添加文件到目录 选择HelloWold.h
在Source Files下随意建立一个cpp文件:
这里是:
#include <jni.h> //这个是必须要加入的
#include <stdio.h>
#include "HelloWorld.h"
JNIEXPORT void JNICALL Java_HelloWorld_MyMethod //这个方法是HelloWorld.h中出现的部分
(JNIEnv * e, jclass s){
printf("hello world,the first world");
return;
}
编译,运行。(这里有可能出现问题,到时百度)
在项目的Debug下将会产生一个HelloWorldDll.dll
将其拷贝到java工程项目的bin 目录下就搞定了
此时如果是用命令行运行:java HelloWorld没有任何问题
但是在Eclipse中将会出错
此时需要在环境变量中配置Path:添加我们项目bin目录:如我的就是:F:\WORKSPACE\jnihello\bin
此时就是见证奇迹的时刻了
- JNI学习入门1
- JNI入门学习笔记
- JNI学习(一),入门
- JNI学习入门2
- JNI入门学习
- JNI入门学习总结
- JNI入门学习笔记
- jni 入门学习
- JNI入门学习
- JNI学习一(入门篇)
- android JNI入门-学习笔记
- JNI学习2——jni入门篇
- jni入门学习笔记(一)
- jni入门学习笔记(二)
- jni入门学习笔记(一)
- jni入门学习笔记(一)
- Android NDK的入门学习Hello JNI
- JNI 入门学习笔记(一)
- 了解tomcat conf目录下。web.xml,tocat-users.xml.server.xml以及context.xml四个文件的作用
- 技术博客规则
- 黑马程序员-第六天(继承)
- Andriod开发(1)——eclipse环境变量的配置
- linux 内核库函数
- JNI学习入门1
- JavaEE入门:学习笔记02
- Javascript实现Lisp列表(list)及操作
- static void cvTsDistTransform( const CvMat* _src, CvMat* _dst, int dist_type, intmask_size, float* _
- poj1947 树形DP
- SQL 优化
- pat:1011<advanced> <World Cup>
- 理解Load Average做好压力测试
- Linux shell的算术运算