Java 之 native:JNI 本地方法测试实现
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了 Java 之 native:JNI 本地方法测试实现,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1715字,纯文字阅读大概需要3分钟。
内容图文
native 本地方法的实现
1.先编写java文件
package com.day01231;
public class HelloWorld {
static {
System.load("E:\\ku_code\\VS2019\\hellodll\\hello\\x64\\Debug\\hello.dll");
}
public static void main(String args []){
HelloWorld helloWord = new HelloWorld();
helloWord.sayHello("niha11oqweqweqweqwe");
}
public native void sayHello(String name);
}
2.编译java文件
//编译
java HelloWorld.java
//生成 .h 头文件,这句注意目录的位置,需要在 com所在的 上一层目录。
javah -jni com.day01231.HelloWorld
//会生成一个 com_day01231_HelloWorld.h 文件
com_day01231_HelloWorld.h 内容,不用做任何修改
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_day01231_HelloWorld */
#ifndef _Included_com_day01231_HelloWorld
#define _Included_com_day01231_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_day01231_HelloWorld
* Method: sayHello
* Signature: (Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_com_day01231_HelloWorld_sayHello
(JNIEnv *, jobject, jstring);
#ifdef __cplusplus
}
#endif
#endif
3.新建一个DLL 工程,工程命名,就叫 dll的名字。 hello
4.引入jdk中的 jni.h jni_md.h 2个文件,在工程中的 【头文件】目录中
5.新建一个cpp 文件,在【源文件】中
#include <iostream>
#include "pch.h"
#include "com_day01231_HelloWorld.h" // 需要引入 com_day01231_HelloWorld.h
using namespace std;
JNIEXPORT void JNICALL Java_com_day01231_HelloWorld_sayHello
(JNIEnv* env, jobject jobj, jstring jstr)
{
const char* str;
str = env->GetStringUTFChars(jstr, JNI_FALSE); //JNI 中的 false 是 JNI_FALSE
cout << str << endl;
env->ReleaseStringUTFChars(jstr, str);
}
6.编译生成。使用的机器如果是 64位,需要选择 x64 ,否则只能在 32 位机器上使用
7.把生成的 dll 拷贝到 java 引入的路径,运行java 测试。
内容总结
以上是互联网集市为您收集整理的 Java 之 native:JNI 本地方法测试实现全部内容,希望文章能够帮你解决 Java 之 native:JNI 本地方法测试实现所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。