c++:

FirstEliteValidate.h

#pragma once

void __attribute__((constructor)) startup();
void __attribute__((destructor)) shutdown();
#ifdef __cplusplus
extern "C" {
#endif int FirstEliteValidateTest(); #ifdef __cplusplus
}
#endif

FirstEliteValidate.cpp

#include "FirstEliteValidate.h"

/*
To test the library, include "FirstEliteValidate.h" from an application project
and call FirstEliteValidateTest(). Do not forget to add the library to Project Dependencies in Visual Studio.
*/ static int s_Test = ; int FirstEliteValidateTest()
{
return ++s_Test;
}

编译出so文件命名为 libFirstEliteValidate.so,复制到 /usr/lib下

java:

package com.bg.security;

import java.util.Properties;

import com.sun.jna.Library;
import com.sun.jna.Native; public class Program4Linux { public interface CLibrary extends Library {
int FirstEliteValidateTest();
} public static void main(String[] args)
{
CLibrary lib = (CLibrary) Native.load("FirstEliteValidate", CLibrary.class);
int a = lib.FirstEliteValidateTest();
int b = lib.FirstEliteValidateTest();
int c = lib.FirstEliteValidateTest(); System.out.println("a=" + a);
System.out.println("b=" + b);
System.out.println("c=" + c); Properties props = System.getProperties();
System.out.println("Operation System:" + props.getProperty("os.name"));
System.out.println("System Version:" + props.getProperty("os.version"));
System.out.println("end");
}
}

运行:

java -Djava.ext.dirs=/home/knife/DemoCode/jar -Djava.library.path=lib com.bg.security.Program4Linux

java通过jna调用so的更多相关文章

  1. java 用JNA调用dll 参考文档

    1  Java调用C语言动态库(JNA方式):回调函数.结构体数组传参.结构体数组返回 2jna结构体数组  JNA结构体数组 3JNA调用C语言动态链接库学习实践总结 4 Java 通过 JNA 调 ...

  2. java 利用jna调用c#的dll

    一.需求阐述: 如果我们的项目利用c#开发,到了开发后期需要和java组进行合作,其中有一部分业务逻辑利用c#已经code completed,那么我们可能会考虑用java来调用现成的c#dll实现需 ...

  3. 【开发者笔记】java 利用jna调用c#的dll

    一.需求阐述: 如果我们的项目利用c#开发,到了开发后期需要和java组进行合作,其中有一部分业务逻辑利用c#已经code completed,那么我们可能会考虑用java来调用现成的c#dll实现需 ...

  4. Java通过jna调用c++动态库

    1 环境准备 操作系统:windows 10,x64 jna,jna-4.4.0.jar c++开发环境,vc2013 java开发环境,eclipse,jdk8 2 dll开发 通过vc2013创建 ...

  5. Java使用JNA调用DLL库

    Java调用DLL方法有三种,JNI.JNA.JNative, 本文为JNA JNA为使用jna.jar包,下载地址:http://www.java2s.com/Code/Jar/j/Download ...

  6. java使用JNA调用dll

    1.自己搞一个dll出来.参考下面链接 http://blog.csdn.net/lqena/article/details/46357165. 2.下载jar jna-4.2.1.jar. 3.复制 ...

  7. Java 通过Jna调用dll路径问题

    调试阶段 C++ dll --> window/system32C# dll --> C:\Program Files\Java\jdk1.8.0_171\bin [jdk bin] 打包 ...

  8. Java使用JNA方式调用DLL(动态链接库)(原创,装载请注明出处)

    Java使用JNA调用DLL 1.准备 1.JDK环境 2.Eclipse 3.JNA包 下载JNA包: (1).JNA的Github:https://github.com/java-native-a ...

  9. Java跨语言调用,使用JNA访问Java外部接口

    1. JNA简单介绍 先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言(尤其C/C++)写的代码进行交互,只要遵守调用约定即 ...

随机推荐

  1. Verilog中的Timescale作用

    很多时候,我们拿到已有的东西理所当然的用了,其实,你真的对你所使用的东西了解吗? 再次犯下这样的错误,是因为在把代码从Altera 的CycloneV移植到Xilinx的Spartan6上,我遇到了非 ...

  2. mapper映射文件配置之insert、update、delete(转载)

    原文地址:http://www.cnblogs.com/dongying/p/4048828.html 在mapper文件中,以mapper作为根节点,其下面可以配置的元素节点有: select, i ...

  3. DevExpress WPF v19.1新版亮点:PDF Viewer等控件新功能

    行业领先的.NET界面控件DevExpress 日前正式发布v19.1版本,本站将以连载的形式介绍各版本新增内容.在本系列文章中将为大家介绍DevExpress WPF v19.1中新增的一些控件及部 ...

  4. python的xlrd、xlwt模块、openpyxl /pymsql使用

    xlrd模块: https://www.cnblogs.com/machangwei-8/p/10736528.html#_label0 xlwt模块 https://www.cnblogs.com/ ...

  5. 【NOIP2016提高A组模拟9.24】总结

    第一题纯模拟,结果那个出题人脑子似乎进水了,空间限制开了1G!!! 导致我捉摸了半天为什么空间要开那么大,最后只能得出上面的结论. 第二题是个矩阵快速幂,比赛上我没把递推式求出来,但是根据各种乱搞,得 ...

  6. curl POST如何查看响应的Header(转)

    curl -I 这样其实发送是HEAD请求. 下面这样发送POST请求(-X POST),同时指定Basic认证用户名密码(-u ‘andy:andy’),同时指定数据类型(-H ‘Content-T ...

  7. python 输出一个随机数

    题目:输出一个随机数. 程序分析:使用 random 模块. #!/user/bin/env python #coding:utf-8 import random print random.rando ...

  8. 消息队列之--RocketMQ

    序言 资料 https://github.com/alibaba/RocketMQ http://rocketmq.apache.org/

  9. SQL基础测试

    SQL 测验 结果:20/20 您的回答: 1.SQL 指的是? 您的回答:Structured Query Language 2.哪个 SQL 语句用于从数据库中提取数据? 您的回答:SELECT ...

  10. Charles模拟数据

    安装好Charles 桌面创建json文件