windows下vscode+vs2019开发JNI的示例

JNI全称是Java Native Interface(Java本地接口)单词首字母的缩写,本地接口就是指用C和C++开发的接口。由于JNI是JVM规范中的一部份,因此可以将我们写的JNI程序在任何实现了JNI规范的Java虚拟机中运行。同时,这个特性使我们可以复用以前用C/C++写的大量代码。

开发JNI程序会受到系统环境的限制,因为用C/C++语言写出来的代码或模块,编译过程当中要依赖当前操作系统环境所提供的一些库函数,并和本地库链接在一起。而且编译后生成的二进制代码只能在本地操作系统环境下运行,因为不同的操作系统环境,有自己的本地库和CPU指令集,而且各个平台对标准C/C++的规范和标准库函数实现方式也有所区别。这就造成使用了JNI接口的JAVA程序,不再像以前那样自由的跨平台。如果要实现跨平台,就必须将本地代码在不同的操作系统平台下编译出相应的动态库。

JNI开发流程主要分为以下4步:

1、在eclipse中编写声明了native方法的Java类

2、生成JNI头文件

3、在visual studio 中创建DLL 项目,实现 JNI头文件中的方法

4、在eclipse中设置Native library location,路径为 visual studio 中生成的DLL 文件路径,运行java 程序

通过上面的介绍,相信大家对JNI及开发流程有了一个整体的认识,下面通过一个示例给大家介绍vscode2019开发JNI,再深入了解JNI开发的各个环节及注意事项。

使用环境:

  • openjdk15
  • vscode
  • vs 2019

我使用maven默认创建项目

将以下代码复制进App

public class App
{
    static {
        System.loadLibrary("JNITest");
    }

    public native static void helloJNI();

    public static void main( String[] args )
    {
        helloJNI();
    }
}

接着打开debug(Ctrl+Shift+D)

点击蓝字创建launch.json配置文件

打开一个终端进入到与App.java相同路径
cd .\src\main\java\com\example\
再输入javac -h .\ App.java
无警告则成功,此时路径如下图

打开vs2019,创建一个动态链接库

项目名如下

此时项目如下图

然后我们将vscode中生成的com_example_App.h复制到该项目目录下,然后按下Shift+Alt+a添加该头文件

可以看见此时编译器无法识别该头,所以右键单击项目选择属性然后进入此界面

右边小箭头点击编辑,此时出现以下界面

点击右上角文件夹加号右边出现省略号,点击省略号然后导航至自己的jdk安装目录选择includ目录下的所有文件夹,最终成果如下

应用保存后可以看见警告已经消失,此时打开pch.cpp加入以下代码并完成函数

#include "pch.h"
#include "com_example_App.h"
#include <iostream>

JNIEXPORT void JNICALL Java_com_example_App_helloJNI
(JNIEnv*, jclass) {
	std::cout << "hello JNI!" << std::endl;
}

此时将上方debug选择x64,运行项目,运行完成后在项目目录x64/Debug下找到生成的dll文件JNITest.dll

复制当前路径,打开vscode中的launch.json添加如下参数到configurations下,目录更改为自己项目下的dll

{"vmArgs": "-Djava.library.path=C:/Users/monoliths/Documents/project/java/JNITest/x64/Debug"}

可以将dll复制到项目下然后同样配置java.library.path到dll
也可以直接将dll复制到System32下或添加到Path中

此时运行java项目可得到以下输出:

以上就是windows下vscode+vs2019开发JNI的详细内容,更多关于vscode2019开发JNI的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解如何在VS2019和VScode中配置C++调用python接口

    why 看到这个标题有些人说了,为什么好好的C++你非要调用python?人家明明是两种语言呀! 但是在实际应用中,有时候会用到C/C++调用python来更简单地去完成一些功能,不然人家python为什么有一个文件夹叫include,里边全是.h文件呢? VScode中配置环境 首先是在VScode中为C++调用python接口配置环境,这里假设你已经配置好了c++编程环境! 1.配置step1 用快捷键Ctrl+Shift+X打开Extensions 商店,输入python,install:

  • windows下vscode+vs2019开发JNI的示例

    JNI全称是Java Native Interface(Java本地接口)单词首字母的缩写,本地接口就是指用C和C++开发的接口.由于JNI是JVM规范中的一部份,因此可以将我们写的JNI程序在任何实现了JNI规范的Java虚拟机中运行.同时,这个特性使我们可以复用以前用C/C++写的大量代码. 开发JNI程序会受到系统环境的限制,因为用C/C++语言写出来的代码或模块,编译过程当中要依赖当前操作系统环境所提供的一些库函数,并和本地库链接在一起.而且编译后生成的二进制代码只能在本地操作系统环境下

  • Windows下搭建python开发环境详细步骤

    本文为大家分享了Windows下搭建python开发环境详细步骤,供大家参考,具体内容如下 1.搭建Java环境 (1)直接从官网下载相应版本的JDK或者JRE并点击安装就可以 (2)JDK与JRE的区别: 1)JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境.SDK是Software Development Kit 一般指软件开发包,可以包括函数库.编译程序等 2)JRE是Java Runtime Envirom

  • Windows下使用Dev-C++开发基于pthread.h的多线程程序实例

    一.下载Windows版本的pthread 目前最新版本是:pthreads-w32-2-9-1-release.zip. 二.解压pthread到指定目录 我选择的目录是:E:\DEV-CPP\Pthread 完成后,该目录会多出三个文件夹:Pre-built.2,pthreads.2,QueueUserAPCEx. 三.配置Dev-C++编译选项 1)点击"工具"→"编译选项"→"目录"→"c++包含文件",浏览到刚才解压

  • windows下vscode使用cmake的方法

    说在前头: cmake的作用,是通过你的CMakeLists文件,根据你的工程自动帮你成makefile文件.优点是CMakeLists非常简单好写,makefile写起来则比较复杂. 有了makefile文件,你就只需要使用编译器的make指令,便可以生成最终的可执行文件 不同的编译器,所对应的makefile有差异,如mingw的,visual studio的等等,因此使用cmake前,应指明它的文件生成对象是什么,在vscode里面的用户设置文件里面应写上这么一行: "cmake.gene

  • Windows下VScode实现简单回声服务的方法

    目录 1. 相关知识 1.1 什么是回声服务 1.2 服务端.客户端如何交互 2. socket 编程 2.1 服务端 2.2 客户端 3. demo展示 3.1 服务端源代码 3.2 客户端源代码 3.3 运行结果 参考链接 1. 相关知识 1.1 什么是回声服务 回声服务端可以将客户端传来的信息,再原封不动地发送给客户端,因而得名 epoch 服务.服务端 server 和 客户端 client 基于 TCP 进行通信. 1.2 服务端.客户端如何交互 下图给出了基于 TCP 的服务器端和客

  • Windows下搭建FFmpeg开发调试环境的详细步骤

    目录 背景 步骤 一.安装VS 2017 二.安装 YASM 与 NASM 三.创建正确的目录层次 四.下载源码和相关依赖 五.编译与调试 ⏭️ 一键部署脚本 背景 如果你是一个FFmpeg的使用者,那么绝大部分情况下只需要在你的程序中引用FFmpeg的libav*相关的头文件,然后在编译阶段链接相关的库即可. 但是如果你想调试FFmpeg内部相关的逻辑,或者分析FFmpeg源码,那么有一个可供单步调试FFmpeg的环境往往能使你事半功倍! 要说Windows下做C/C++开发用哪个IDE最强大

  • Windows下搭建Flutter开发环境

    前言 从来没接触过flutter,我将在这里记录下我的flutter学习踩坑历程. 安装 就从安装开始叭,官网链接在此.先遵照官网教程来叭. 系统要求 文档记录了系统要求: 操作系统 Windows 7 SP1 or later (64-bit), x86-64 based. 磁盘空间1.64G以上(不包含工具和IDE) 工具: Windows PowerShell 5.0 或者更新的版本,(windows10自带) git windows版2.X以上,确保配置过环境变量,在powershell

  • Windows下搭建PHP开发环境(Apache+PHP+MySQL)

    PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发环境,需要哪个模块自己安装就行了,或者那个软件需要升级,直接升级那个软件就行了,并不影响其他软件,非常方便. 一.准备工作-下载所需软件 Apache  httpd-2.2.22-win32-x86-openssl-0.9.8t.msiPHP     php-5.3.10-Win32-VC9-x86

  • Windows下搭建Android开发环境

    工具/原料 JDK Eclipse ADT JDK的安装和Java环境变量的设置 1.JDK下载地址     JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html     JDK(Java Development Kit)是整个Java的核心,包括一系列Java开发的东西,安装完毕需要配置一下环境变量. 2.JAVA_HOME    JDK的安装路径,这个环境变量本身不存在,需要创建,创建完则可以利用

  • windows下vue.js开发环境搭建教程

    最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用Vue.js 的构建工具都已经升级到2.0版本了),经过了一段时间的摸索和看官方的教程和api,才了解到2.0版本在1.0版本的基础上做了好多调整,废弃了好多api.废话不多说了,把我踩过的坑,在这里跟大家说说,希望对初学者有所帮助.ps:高手请绕道. 既然是入门实例,那肯定从最基础的开始了,希望初

随机推荐