jni记录

原创 2012年03月23日 23:00:35

  jni学了好几次了,每次学了点基础就忘了,这次记录下来以备查找。

    1,首先创建一个目录,可以用eclipse创建,也可以手工创建。

      

     2,在src目录下创建包结构,编写java层代码。

package com.test.jni;

public class Jnitest {
	static {
		System.loadLibrary("hello");
	}

	public static native void print();

	public static void main(String[] args) {
		System.out.println("Hello,World");
		print();
	}
}
      3,使用命令行进入src目录,使用javac编译java代码,然后在bin\classes\目录下会生成Jnitest.class文件

       4,使用命令行进入bin\classes\目录下,使用  javah -d ..\..\lib  com.test.jni.Jnitest, 会在lib目录下生成com_test_jni_Jnitest.h文件。


        5,拷贝com_test_jni_Jnitest.h文件到linux环境下,创建com_test_jni_Jnitest.c文件

#include<stdio.h>
#include "com_test_jni_Jnitest.h"
/*
 * Class:     com_test_jni_Jnitest
 * Method:    print
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_com_test_jni_Jnitest_print
  (JNIEnv *env, jclass class){
	printf("Hello world from jni");
}

       6,编译so文件,其中 gcc参数 -I表示头文件所在目录

gcc com_test_jni_Jnitest.c -I/usr/lib/jvm/java-6-sun/include/ -I/usr/lib/jvm/java-6-sun/include/linux -fPIC -shared -o libhello.so

7,将生成的so文件拷到工程lib下面

8,在linux系统下 进入bin/classes 目录下 ,运行 其中-D指定了java寻找so的路径。
java -Djava.library.path="../../lib/" com.test.jni.Jnitest 

   输出结果如下:Hello,World
Hello world from jni


















            
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

jni编程细节记录

相信做jni开发的人都知道,jni是什么意思,接口本地调用。 本文记录下本人在开发中关于jni编程中用c++代码编写的简单调用以及复杂数据的调用等等会遇到的一些问题已经解决办法 1、jni...

JNI初学记录

Android studio自带例子编译出现: 错误1:Error:FAILURE: Build failed with an exception. * What went wrong: Exec...

JNI基本知识,做记录

我自己写JNI的基本流程, 1.首先编写java部分的JNI接口public class JNIInterface { public native String sayHi(); public n...

android jni常用数据类型的记录

感觉最近工作中,经常需要用到jni,jni是项目开发中经常用到的一种机制,比较便捷,主要目的是,实现应用层调用底层驱动层的方法。 最基本的一些关于jni的知识,就不再这边讲述,这边主要记录一些常...

Javah 常见错误记录-NDK与JNI除错

测试文件:hello-jni/src/com/example/hellojni/HelloJni.java   [Java] view plaincopyprint? /**...

Android Studio Jni环境配置 - 记录

步骤1.android studio >=1.3 ,安装NDK,使用SDK安装即可,见下图 2.修改./app/build.gradle ./build.gradle ./gradle/wrappe...

Android-JNI NDK的学习记录

1.JNI和JDK的初认识:    JNI:java调用C,C++的代码技术,但是光能调用不行,首先你得生成被调用的东西,你的应用需要打包发布。对于开发人员来说,这些事情越方便越好。最早期Andro...

java curl开发记录(二) linux系统下jni封装curl,android java使用curl

java curl开发,在linux系统上,通过jni对libcurl进行封装。 开发环境:ubuntu 15.04 64位,jdk 1.7

JNI DETECTED ERROR IN APPLICATION解决记录

最近遇到一个JNI的问题,同一套代码在Android4.4版本前的设备上运行是OK的,但是在Android5.0之后的设备上就会崩溃,查看logcat发现报JNI DETECTED ERROR IN ...

Android JNI学习之第一个入门实例(确实花了不少功夫,也遇到了很多阻碍,不过还好,最终解决,记录下)

关于如何安装配置Cygwin,如何安装ndk网上搜搜一大片,这里不再赘述。下面主要对这个简单的JNI实例的实现,做一个记录。 注意:使用的是ndk-1.6.r1,在ndk_r4版本后和这有点区别,这里...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)