zoukankan      html  css  js  c++  java
  • JNI开发入门

    JNI开发入门

    一、概述

    JNI(java native interface),JAVA本地接口调用,目的是为了JAVA可以调用本地程序,主要优点有:
    • 提高效率,解决性能问题
    • 防止反编译,提高核心代码安全性
    • 增强本机接口调用
    • 嵌入式开发应用
        如下通过一个最简单的小demo,演示如何进行jni开发。
    二、demo演示
    1. 新建JAVA文件
    新建一个java类,如下:
     
     HelloJni.java在硬盘上的位置:D:/workspace/MyWork/src/chb/test/jni/HelloJni.java
     
    2. 生成class文件
    1) 利用javac命令进行编译,进入D:/workspace/MyWork/src/chb/test/jni目录,利用
     
    2) 利用IDE,例如我利用eclipse开发,自动编译,编译后的文件位于:D:/workspace/MyWork/bin/chb/test/jni目录下
     
    3. 生成C头文件
    1) 如果利用javac命令编译,则进入D:/workspace/MyWork/src目录,然后输入
     
    会在D:/workspace/MyWork/src目录下发现新生成的头文件:chb_test_jni_HelloJni.h,文件内容如下:
     
     
    2) 如果利用IDE编译,则直接在编译根目录使用javah命令即可,例如进入:D:/workspace/MyWork/bin,然后使用
     
    效果相同。
     
    注意:因为HelloJni是在chb.test.jni包中的,因此需要写明全路径,否则如果直接到目录:D:/workspace/MyWork/bin/chb/test/jni,然后执行javah HelloJni,会报出异常,如下:
     
     4. 新建C实现,并生成dll文件
    新建c工程,本人利用dev c++,源代码如下:
     
     方法很简单,就输出一句话,然后编译工程,生成hellojni.dll,并且将hellojni.dll拷贝到windows/system32目录下
     5. 执行java代码
    运行HelloJni的main方法,输出"hello Jni",运行成功
    本文比较简单,主要方便大家上手做第一个demo,有个感性的认识。
  • 相关阅读:
    第五章 运输层(UDP和TCP三次握手,四次挥手分析)
    Fluent Ribbon 第六步 StartScreen
    Fluent Ribbon 第七步 状态栏
    Fluent Ribbon 第八步 其他控件
    Avalondock 第四步 边缘停靠
    node.js开发学习一HelloWorld
    Winform应用程序实现通用遮罩层
    输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的
    Navicat连接MySQL8+时出现2059报错
    win10安装MySql教程
  • 原文地址:https://www.cnblogs.com/hehe520/p/6330203.html
Copyright © 2011-2022 走看看