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. matlab读取内容为二进制的TXT文件

    本方法同样适合读取十六进制和二进制以外的其他进制文件,txt使用一个最简单的命令就可以读取 textread 这是一个十分有用,简便的函数(对于fopen fscanf而言)读取二进制txt文件:假如 ...

  2. vim 添加显示和行号

    方法一: 1.显示当前行行号,在VI的命令模式下输入 :nu 2.显示所有行号,在VI的命令模式下输入 :set nu :set nonu 关闭 方法二: 使用vi编辑~/.vimrc文件,在该文件中 ...

  3. Librepilot-Spark2固件的烧写

    1.通过USB连接Librepilot_Spark2飞控,启动Librepilot GCS地面站(博主的GCS是16.09版本),界面如下. 2.点击Firmware标签页,点击终止系统(若板子未带系 ...

  4. Maven搭建简单的SPring+SpringMVC+Hibernate框架

    公司的项目用到的框架是Spring+SpringMVC+Hibernate 以前没有用过,所以要系统的学习一下,首先要学会怎么搭建 第一步  创建一个Maven的web项目  创建方法以前的博客中有提 ...

  5. org.springframework.web.servlet.view.ContentNegotiatingViewResolver

    restful服务中一个重要的特性就是一种资源可以有多种表现形式,在springmvc中可以使用ContentNegotiatingViewResolver这个视图解析器来实现这种方式. 描述资源的三 ...

  6. Codeforces 1272D

    题意:给定一个长度为n的数组a,你至多可以删去其中的一个元素,找出最长的连续(严格)上升子序列的长度. 分析:读完题之后可以发现这道题和模板:连续上升子序列很相像,首先可以确定方向是dp:状态是当前的 ...

  7. 文件操作:rewind()

    函数名: rewind() 功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头   注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动 ...

  8. SpringCloud 入门知识篇

    SpringCloud 入门 springcloud 学习 7天学会springcloud 教程 https://www.cnblogs.com/skyblog/category/738524.htm ...

  9. UVA 11988 Broken Keyboard (a.k.a. Beiju Text)(链表)

    题目代号:UVA 11988 题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&pa ...

  10. Android图片缩放 指定尺寸

    //使用Bitmap加Matrix来缩放     public static Drawable resizeImage(Bitmap bitmap, int w, int h)     {       ...