JNI Java 入门篇——传递&&接收基本数据类型
来源:互联网 发布:语音识别 算法 编辑:程序博客网 时间:2024/06/13 09:52
最近在学习JNI Java基础,不了解基本开发流程的同学请参考JNI Java入门篇——HelloWorld.
下面直接上主要代码:
1.PrimaryJNI.java
package com.example.jni;public class PrimaryJNI { static { System.loadLibrary("primaryjni"); } public native String echo(String content, boolean flag); public native int calculateSqr(int x, int y); public native double calculateSum(double x, double y); public native float calculateSum(float x, float y); public static void main(String[] args) { PrimaryJNI item = new PrimaryJNI(); int sqr = item.calculateSqr(3, 4); String content = item.echo("Hello World", true); double doubleSum = item.calculateSum(2, 3); float floatSum = item.calculateSum(2.0f, 3.0f); System.out.println("sqr : " + sqr); System.out.println("Java Content : " + content); System.out.println("double sum result : " + doubleSum); System.out.println("float sum result : " + floatSum); }}
2.primaryjni.cpp
// primaryjni.cpp : Defines the exported functions for the DLL application.////be careful ,follow must be first line#include "stdafx.h"#include "com_example_jni_PrimaryJNI.h"#include <math.h>/** Class: com_example_jni_PrimaryJNI* Method: echo* Signature: (Ljava/lang/String;Z)Ljava/lang/String;*/JNIEXPORT jstring JNICALL Java_com_example_jni_PrimaryJNI_echo(JNIEnv * env, jobject obj, jstring param1, jboolean flag) { const char* content = env->GetStringUTFChars(param1, 0); printf("(C++)received Java Conent:%s", content); env->ReleaseStringUTFChars(param1, content); char* return_content = "c++ returned echo msg"; return env->NewStringUTF(return_content);}/** Class: com_example_jni_PrimaryJNI* Method: calculateSqr* Signature: (II)I*/JNIEXPORT jint JNICALL Java_com_example_jni_PrimaryJNI_calculateSqr(JNIEnv * env, jobject obj, jint param1, jint param2) { int x = param1; int y = param2; return (int)sqrt(x*x + y*y);}/** Class: com_example_jni_PrimaryJNI* Method: calculateSum* Signature: (DD)D*/JNIEXPORT jdouble JNICALL Java_com_example_jni_PrimaryJNI_calculateSum__DD(JNIEnv * env, jobject obj, jdouble param1, jdouble param2) { return param1 + param2;}/** Class: com_example_jni_PrimaryJNI* Method: calculateSum* Signature: (FF)F*/JNIEXPORT jfloat JNICALL Java_com_example_jni_PrimaryJNI_calculateSum__FF(JNIEnv * env, jobject obj, jfloat param1, jfloat param2) { return param1 + param2;}
ok!
1 0
- JNI Java 入门篇——传递&&接收基本数据类型
- Android JNI入门第五篇——基本数据类型使用
- Android JNI入门第六篇——基本数据类型使用
- Java JNI 入门篇——传递数组与修改数组
- java入门学习(2)—基本数据类型
- Java JNI 入门篇——HelloWorld
- 【java&&jni】jni入门篇
- Java入门(6)——集合、基本数据类型和引用数据类型的相互转换
- Java入门(6)——集合、基本数据类型和引用数据类型的相互转换
- Java基础篇——基本数据类型
- java——基本数据类型
- JNI基本数据类型转换
- JNI基本数据类型对照
- JNI基本数据类型
- JNI基本数据类型
- JNI:基本数据类型转换
- JAVA---基本数据类型和引用数据类型传递值得案例
- java基本数据类型传递与引用传递区别详解
- Android基础第二天
- [leetcode]204. Count Primes
- android的m、mm、mmm编译命令的使用
- 2016书单总结--JVM虚拟机之概述篇
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- JNI Java 入门篇——传递&&接收基本数据类型
- 11gr2 rac改IP系列之二:修改VIP为同网段其它IP
- linux下安装Django与卸载
- mysql 修改表结构语句
- Nginx Location配置总结
- Java小程序之集合框架模拟数据库实现用户登录和注册功能
- Javascript高级程序设计——9.正则表达式(2)
- 11gr2 rac改IP系列之三:修改SCAN IP为同网段其它IP
- MMO与弱交互游戏的服务端技术区别