m0_50684327 2023-02-10 20:09 采纳率: 66.7%
浏览 69
已结题

关于linux系统下多个相互依赖的.so文件的java jna调用

我尝试用jna 在linux服务器上调用多个相互依赖的.so文件(如图)

img


然后我尝试用网上相似的办法去调用,有些找到了,但有一个怎么也找不到,请问该如何解决?
以下是我的Try.java的代码

import com.sun.jna.Native;
import com.sun.jna.Library;
import java.io.File;
public class Try{    
    public static interface PPOCR extends Library{
        int main(int argc,String[] argv);
        void checkParams();
        String getResult(int argc,String[] argv);
    }
    public static interface Paddle extends Library{

    }
    public static void main(String[] args){     
    // System.load(new File("libonnxruntime.so.1.11.1").getAbsolutePath());
        Paddle Inference2=(Paddle)Native.load(new File("libonnxruntime.so.1.11.1").getAbsolutePath(),Paddle.class);
        Paddle Inference1=(Paddle)Native.load("libiomp5.so",Paddle.class);
        Paddle Inference3=(Paddle)Native.load("libpaddle2onnx.so.0.9.9",PPOCR.class);
        Paddle Inference=(Paddle)Native.loadLibrary("paddle_inference",Paddle.class);
        PPOCR Instance=(PPOCR)Native.loadLibrary("ppocr",PPOCR.class);
        System.out.println("start");
        String arg="ppocr.exe system --det_model_dir=inference/ch_PP-OCRv3_det_infer --rec_model_dir=inference/ch_PP-OCRv3_rec_infer --image_dir=181.png";
        String[] arg_all=arg.split(" ");
        int str=Instance.main(arg_all.length,arg_all);
    }
}

运行指令:

rm *.class
javac -cp ".:/home/ubuntu/ocr-test/*"  Try.java 
java -cp ".:/home/ubuntu/ocr-test/*"  Try

结果:

img

  • 写回答

5条回答 默认 最新

  • GISer Liu 2023-02-10 20:46
    关注

    如果你在Linux系统下使用JNA来调用多个相互依赖的.so文件,你可以考虑以下几个方法解决问题:

    1.检查依赖项是否安装:某些.so文件可能需要其他的依赖项才能正常工作。请确保你的系统上已经安装了所有的必要的依赖项。

    2.确定动态链接库的位置:你需要确定动态链接库的位置,并将其路径添加到环境变量LD_LIBRARY_PATH中。

    设置库搜索路径:您可以通过以下方式在Java代码中设置库搜索路径

    System.setProperty("jna.library.path", "/path/to/library");
    

    4.手动加载所有相关的动态链接库:如果您不能确定动态链接库的顺序,您可以手动加载所有相关的动态链接库。

    System.load("/path/to/library1");
    System.load("/path/to/library2");
    

    如果仍然无法解决问题,请尝试提供更多的信息,例如错误消息,代码示例等,以便更好地帮助您解决问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 2月18日
  • 已采纳回答 2月10日
  • 创建了问题 2月10日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改