1. 程式人生 > 其它 >java呼叫C++介面

java呼叫C++介面

技術標籤:javajavadlljnilinux

window下dll檔案

1.引入maven依賴

<dependency>
			<groupId>com.sun.jna</groupId>
			<artifactId>jna</artifactId>
			<version>3.0.9</version>
		</dependency>

2.呼叫部分
C++程式碼
在這裡插入圖片描述

java介面類
**

方法名必須一致

**

import com.sun.jna.Library;
import com.sun.
jna.WString; public interface Routeplanning extends Library { public WString test_cal(WString json); }

測試

import com.sun.jna.Native;
import com.sun.jna.WString;

public class JnaTest {
    public static void main(String[] args) {
        Routeplanning routePlanning  = (Routeplanning) Native.loadLibrary
("Route_planning",Routeplanning.class);//Route_planning為dll檔名稱,不需要加字尾 String json="{\"name\":\"張三\"}"; WString result=routePlanning.test_cal(new WString(json)); System.out.println(result); } }
  1. dll檔案存放位置
    需要存放在path下的任意一個路徑

String path=System.getProperty(“java.library.path”);

4.附加型別對應表
https://www.cnblogs.com/jkguo/p/11262741.html

linux下so檔案

程式碼部分與linux一致

  1. linux環境下 檔案需放在/lib64資料夾下
  2. linux檔名為必須為libxxx.so,如libRoute_planning.so,程式碼中載入檔案無需加lib字首