当前位置:   article > 正文

Windows下使用Java Jni调用C/C++初探_windows java native搜cpp文件

windows java native搜cpp文件

一、Java本地方法原理

详解《Java核心技术 卷II 高级特性》第十二章 本地方法
原理可以用书中的这幅图来描述:
Java处理本地代码

二、 使用工具

Visual Studio 2010Eclipse

三、Demo开发步骤

1. 在Eclipse中创建HelloNativeTest java工程

新建HelloNativeTest类,类代码如下:

public class HelloNativeTest {

    static {
        System.loadLibrary("HelloJni");
    }

    public native void greeting();

    public static void main(String[] args) {
        new HelloNativeTest().greeting();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

然后使用javac命令编译该文件(在cmd模式中,切换到改java文件所在目录,输入javac HelloNativeTest.java),此时便会在同目录下生成.class文件。如下图所示:
class文件

2. 使用javah命令生成.h文件

在命令行中,输入javah HelloNativeTest命令,便会在同目录下生成HelloNativeTest.h头文件。头文件内容如下:

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

#ifndef _Included_HelloNativeTest
#define _Included_HelloNativeTest
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     HelloNativeTest
 * Method:    greeting
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_HelloNativeTest_greeting
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

此时HelloNativeTest\src目录下有三个文件,如下图所示:

这里写图片描述

3. 打开Visual Studio创建dll工程

创建名称为HelloJni的dll工程,步骤如下图:
创建dll工程1
点击ok,接着再点击next,弹出下面的界面,注意选择dll工程和空项目选项。如下图所示:
这里写图片描述
在上一步生成的HelloNativeTest.h文件拷贝到dll工程目录下,同时把该文件add进vs工程中。在工程中创建HelloNativeTest.cpp文件。cpp文件内容如下:

/*
   @version 1.10 2016-10-25
   @author pxhero
*/

#include "HelloNativeTest.h"
#include <stdio.h>

JNIEXPORT void JNICALL Java_HelloNativeTest_greeting( JNIEnv *env, jobject obj)
{
    printf("Hello Native World!\n");
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在build整个工程之前,需要设置工程的include目录,如下图所示:
这里写图片描述
其中C:\Program Files\Java\jdk1.8.0_51\include是你的jdk安装目录。

此时可以build整个工程,生成dll。特别注意,如果你的windows系统是64位的,则必须生成64位的dll,才能被jni调用。64位dll生成的方法是更改你的dll项目的Configure Manager配置,如下图所示,更改成x64
x64 dll配置
点击ok,此时可以Build整个工程了。**由于我的电脑是64的,所以我就按64的来描述了。32位的电脑原理类似。**Build完之后,会在E:\JniDemo\HelloJni\x64\Debug目录下生成HelloJni.dll文件。

4. 在Eclipse中编译运行HelloNativeTest

  1. 需要设置java.library.path,步骤是打开工程的属性界面,如下图所示:
    配置java.library.path
    双击Native library location,
    在location中输入E:\JniDemo\HelloJni\x64\Debug(上一步生成的dll路径)
    path
    点击ok,再点击Apply。此时即可在Eclipse中运行HelloNativeTest,在Console中会有以下输出:
    输入结果
    ok,done!
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/367228
推荐阅读
相关标签
  

闽ICP备14008679号