Java调用 xx.so库

package com.xxx.yyy;

 

public class kkkEncode
{
    public native static boolean encode(double loIn, double laIn, double[] point);    //声明一个同库一样的方法   
    public native static boolean decode(double loIn, double laIn, double[] point);
 
 
    static {
        System.loadLibrary("DataCal");   //加载库,库文件名:libDataCal ,代码 不需要写lib
    }
 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java调用.so,需要使用Java Native Interface(JNI)来实现。下面是一个简单的JNI调用.so的例子: 1. 编写C代码 首先,需要编写一个C代码来实现所需的功能。例如,假设我们有一个名为"example.c"的C文件,其中包含一个名为"printHello"的函数,它将输出"Hello World!"。 ```c #include <stdio.h> #include "example.h" JNIEXPORT void JNICALL Java_com_example_MyClass_printHello(JNIEnv * env, jobject obj) { printf("Hello World!\n"); } ``` 2. 生成.h头文件 接下来,需要使用Java Native Interface工具生成一个.h头文件。这个文件包含了Java代码调用C函数所需的函数原型和数据类型。可以使用以下命令生成头文件: ``` javac -h . example.java ``` 这将生成一个名为"example.h"的头文件。 3. 编写Java代码 现在,可以编写Java代码来调用C函数。例如,假设我们有一个名为"MyClass"的Java类,其中包含一个名为"printHello"的本地方法,该方法将调用C函数"printHello"。 ```java public class MyClass { static { System.loadLibrary("example"); } private native void printHello(); public static void main(String[] args) { MyClass obj = new MyClass(); obj.printHello(); } } ``` 在这里,"System.loadLibrary"方法用于加载.so文件。在这个例子中,文件名为"example",因此Java将搜索名为"libexample.so"的文件。 4. 编译Java代码 编译Java代码并生成一个可执行的JAR文件。可以使用以下命令编译代码: ``` javac MyClass.java jar cvf MyClass.jar MyClass.class ``` 5. 运行Java代码 使用以下命令运行Java代码: ``` java -Djava.library.path=. -cp MyClass.jar MyClass ``` 这将运行Java代码并调用C函数"printHello"。输出应该是"Hello World!"。 注意:在运行Java代码之前,需要确保文件"libexample.so"位于当前目录下或在系统路径中。可以使用"-Djava.library.path"命令行选项指定.so文件的路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值