Linux环境下

yum install gcc-c++ cmake

1.新建Hello.c

#include <stdio.h>
int add(int a,int b);
int add(int a,int b) {
  return a+b;
}

2.编译.c生成.so动态链接库文件

2.1生成.o文件

gcc -fpic -c Hello.c

2.2生成.so文件

gcc -shared -o libHello.so Hello.o

3.引入依赖jar

<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna-platform</artifactId>
    <version>5.3.1</version>
</dependency>

或者直接上传jar到lib目录,并且在java classpath中指定该jar,将jna.jar放到lib下

4.vim /etc/profiles添加jna路径

配置生效: source /etc/profile

printf $CLASSPATH

5.编写HelloDemo.java,注意不要引入package,不然会不能执行main

import com.sun.jna.Library;
import com.sun.jna.Native;

public class HelloDemo {
    public interface Hello extends Library {
         // 这个.so最后使用绝对路径容易加载到
        Hello INSTANCE = Native.load("libHello.so", Hello.class);

int add(int a, int b);// c方法
    }

public static void main(String args[]) {
        System.out.println(Hello.INSTANCE.add(1, 3));
    }
}

6.编译java

javac HelloDemo.java

7.执行HelloDemo调用libHello.so

java HelloDemo

java调用.so方法相关推荐

  1. java 调用祖父方法_在Java中调用祖父母方法:您不能

    java 调用祖父方法 在文章保护的重点中,我详细介绍了"受保护"如何扩展"包私有"访问. 我在那儿写道: 你能做的是 覆盖子类中的方法或 使用关键字super ...

  2. Java 调用 Python 方法学习笔记

    文章转载自: 作者:IT_xiao_bai                         来源:CSDN                         原文:https://blog.csdn.n ...

  3. IDL学习记录和Java调用IDL方法

    IDL学习记录和Java调用IDL方法 2018年02月06日 08:32:02 回首1949 阅读数:385更多 个人分类: 随想 版权声明:乐呵乐呵得了 https://blog.csdn.net ...

  4. java调用一个方法后怎么继续执行不等待该方法的返回_Java面试题大全2020版(二)...

    今天给大家推送第二部分,主要的大块内容分为:多线程.反射.对象拷贝.三大块内容中涉及到的考点如下: 三.多线程 35. 并行和并发有什么区别? 并行是指两个或者多个事件在同一时刻发生:而并发是指两个或 ...

  5. Groovy小结:java调用Groovy方法并传递参数

    @(JAVA总结) 1. 场景描述 在网上查了资料发现,java有三种方式调用groovy脚本.但是真正在实际的服务器环境中,嵌入groovy脚本往往需要满足下面的条件: 可以直接调用groovy脚本 ...

  6. Java调用tostring方法分析_Java对象toString()方法

    对象的字符串表示以可读格式包含有关对象状态的信息. Object类的toString()方法表示字符串中类的对象.Object类提供了toString()方法的默认实现. 它返回一个以下格式的字符串: ...

  7. java调用其他方法中的变量_Uipath中调用Python的方法

    难度等级:初学者. 这篇文章将有助于在UiPath中使用Python活动(Activity),该活动允许从UiPath调用和执行Python脚本.不仅可以执行Python脚本,还可以将参数传递给Pyt ...

  8. Java调用js方法

    js函数保存在String字符串中 package com.netease.qiyu.test.datastageservice.service.impl;import com.netease.qiy ...

  9. java 找出调用的方法_如何找到用Java调用给定方法的所有方法?

    小编典典 为了分析字节码,我建议使用ASM.给定要分析的类列表,可以使访问者找到您感兴趣的方法调用.下面是一个分析jar文件中类的实现. 请注意,ASM使用带有'/'而不是'.的internalNam ...

最新文章

  1. splunk的bucket组织目录——时间序列,按照时间来组织目录
  2. android系统应用开发_利用ADB工具免root停用Android系统应用
  3. (-215:Assertion failed) dst.data == (uchar*)dst_ptr in function 'cvShowImage'
  4. springBoot使用PageHelper当超过最大页数后仍然返回数据
  5. 重在参与吗。。。。。。。。
  6. 洛谷 P1013 进制位
  7. php iframe 上传图片,利用iframe+php实现图片的上传
  8. 脸部细微表情识别_您可以仅使用面部表情来控制字体吗?
  9. c#static中静态方法_用C ++进行静态转换– static_cast()方法
  10. java后端开发简历模板,最全Java知识总结
  11. 设计模式:卑微的代理模式
  12. 编程算法题:101个数字,[1,100]中有一个是重复的,找出这个重复的数字。
  13. mysql 两表关联查询 group by having
  14. kinect体感绿幕抠像,AR虚拟互动拍照,体感抠像拍照
  15. 【数据结构】【王道】【树与二叉树】中序二叉线索树的实现及基本操作(可直接运行)
  16. VC++修改注册表实现禁用开启U盘
  17. consul剔除无效服务
  18. 【算法模板】DFS秒杀模板—附练习题(阳光号启航)
  19. 秒数转换为天小时分钟秒的格式
  20. 概率图模型的一些基本概念与例子

热门文章

  1. java8 LocalTime的使用方法
  2. 个人简历中英双语词汇对照资料[推荐收藏]
  3. ip加速器为什么受游戏玩家欢迎?
  4. base64的使用方法
  5. hexo的Matery主题优化(一)
  6. 一线通的ISDN.c编写
  7. JAVASE常用方法浅谈。学如逆水行舟, 不进则退
  8. 趣图:接口文档说就是这么用的啊
  9. 【干货】PCB材料选择与性能比较
  10. 利用selenium爬取网易云音乐歌手歌曲信息并分析