当前位置: 首页 > news >正文

java中的JNI调用c库

1. 简单demo

如果是在某个项目中有包名就需要自己找ai问问去改写下cmd命令去编译执行等

  1. java文件(HelloJNI.java)
public class HelloJNI {

    // 声明 native 方法
    public native void sayHello();

    // 加载本地库
    static {
        System.loadLibrary("hello");
    }

    public static void main(String[] args) {
        new HelloJNI().sayHello();  // 调用 native 方法
    }
}
  1. 编译命令

文中有中文注释 所以加上-encoding utf-8

javac -encoding utf-8 HelloJNI.java
javac -encoding utf-8 -h . HelloJNI.java

在这里插入图片描述

  1. c文件(HelloJNI.c)
#include <jni.h>
#include <stdio.h>
#include "HelloJNI.h"

JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, jobject obj) {
    printf("Hello from C!\n");
}
  1. 执行
gcc -shared -I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32" -o hello.dll HelloJNI.c

在这里插入图片描述
只要留着这红线的即可,其他文件没啥用了已经

java HelloJNI

在这里插入图片描述

2. springboot中配置

链接

3. 部署注意点

在本地保留dll文件,在linux就是.so文件lib是前缀,建议百度下了解后再去玩

相关文章:

  • 若依微服务集成Flowable仿钉钉工作流
  • 【JavaScript】十八、页面加载事件和页面滚动事件
  • 基于AI的Web应用防火墙(AppWall)实战:漏洞拦截与威胁情报集成
  • 深入理解Java反射
  • 导入 Excel 批量替换文件名称及扩展名
  • react中通过 EventEmitter 在组件间传递状态
  • QTreeWidget 手动设置选中项后不高亮的问题
  • rbd块设备的id修改
  • 纳米软件储能电源模块自动化测试深度解析
  • Git版本管理系列:(三)远程仓库
  • vxe-table4.6 + vue3.2 + ant-design-vue 3.x 实现对列的显示、隐藏、排序
  • MYSQL-创建和使用表
  • Higress: 阿里巴巴高性能云原生API网关详解
  • 分享:批量识别图片文字并重命名,根据图片文字内容对图片批量重命名,Python和Tesseract OCR的完成方案
  • 阿里云负载均衡可以抗ddos吗
  • Qt零散知识点
  • Node.js 中处理 Excel 文件的最佳实践
  • SpringBoot中3种优雅停机的实现方式
  • 基于 Qt 的图片处理工具开发(一):拖拽加载与基础图像处理功能实现
  • HTML 嵌入标签对比:小众(<embed>、<object>) 与 <iframe> 的优缺点及使用场景和方式
  • 校园网站建设的感受论文/百度网盘官网登陆入口
  • 巴中网站建设/上海seo服务外包公司
  • 网站推广营销步骤/想要推广网页正式版
  • 物流企业网站源码/济南seo关键词排名工具
  • 做复印机的模板网站/线上营销渠道
  • 国内做网站比较好的公司有哪些/互联网营销案例