使用JNI在Java中使用PJSIP

发布于 2025-02-10 21:41:03 字数 2834 浏览 0 评论 0原文

我正在尝试在自己的独立Java应用程序中使用PJSIP,但是在为Java构建DLL时,我面临很多问题。 我是JNI新手,有什么帮助吗?

这是我尝试加载时遇到的错误(“ libpjsua.so”)

java.lang.UnsatisfiedLinkError: libpjsua.so.2: libpjsip-ua.so.2: cannot open shared object file: No such file or directory
public class Main {
    static {
        try {
            System.load("/home/sip/libpjsua2.so");
            System.out.println("Loaded");
        } catch (UnsatisfiedLinkError e) {
            System.err.println("Native code library failed to load.\n" + e);
            System.exit(1);
        }
    }

    public static void main(String argv[])
    {
        Call call = new Call(null, 0);
        System.out.println("this is call: "+call);
    }
}

edit 这是运行ldd/home/sip/libpjsua2.so的结果

linux-vdso.so.1 (0x00007ffee372b000)
    libpjsua.so.2 => /usr/local/lib/libpjsua.so.2 (0x00007fdab1d55000)
    libpjsip-simple.so.2 => /usr/local/lib/libpjsip-simple.so.2 (0x00007fdab1d3c000)
    libpjsip.so.2 => /usr/local/lib/libpjsip.so.2 (0x00007fdab1ce3000)
    libpjmedia.so.2 => /usr/local/lib/libpjmedia.so.2 (0x00007fdab1c7b000)
    libpjlib-util.so.2 => /usr/local/lib/libpjlib-util.so.2 (0x00007fdab1c4f000)
    libpj.so.2 => /usr/local/lib/libpj.so.2 (0x00007fdab1c13000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fdab19d3000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fdab19b3000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdab178b000)
    libpjsip-ua.so.2 => /usr/local/lib/libpjsip-ua.so.2 (0x00007fdab176b000)
    libpjmedia-audiodev.so.2 => /usr/local/lib/libpjmedia-audiodev.so.2 (0x00007fdab1761000)
    libpjmedia-codec.so.2 => /usr/local/lib/libpjmedia-codec.so.2 (0x00007fdab174f000)
    libpjnath.so.2 => /usr/local/lib/libpjnath.so.2 (0x00007fdab1719000)
    libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007fdab12d7000)
    libsrtp.so.2 => /usr/local/lib/libsrtp.so.2 (0x00007fdab12c1000)
    libresample.so.2 => /usr/local/lib/libresample.so.2 (0x00007fdab12b2000)
    libspeex.so.2 => /usr/local/lib/libspeex.so.2 (0x00007fdab1282000)
    libwebrtc.so.2 => /usr/local/lib/libwebrtc.so.2 (0x00007fdab1257000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fdab1170000)
    libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007fdab10cc000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fdab1f0e000)
    libasound.so.2 => /lib/x86_64-linux-gnu/libasound.so.2 (0x00007fdab0fc9000)
    libgsmcodec.so.2 => /usr/local/lib/libgsmcodec.so.2 (0x00007fdab0fbd000)
    libilbccodec.so.2 => /usr/local/lib/libilbccodec.so.2 (0x00007fdab0faa000)

I am trying to use PJSIP in my own standalone Java application, but I am facing a lot of issues in building the DLLs for Java.
Is there any DOCs for doing this as I am new to JNI so any help ?

This is the error I am getting when I try to load ("libpjsua.so")

java.lang.UnsatisfiedLinkError: libpjsua.so.2: libpjsip-ua.so.2: cannot open shared object file: No such file or directory
public class Main {
    static {
        try {
            System.load("/home/sip/libpjsua2.so");
            System.out.println("Loaded");
        } catch (UnsatisfiedLinkError e) {
            System.err.println("Native code library failed to load.\n" + e);
            System.exit(1);
        }
    }

    public static void main(String argv[])
    {
        Call call = new Call(null, 0);
        System.out.println("this is call: "+call);
    }
}

EDIT
and this is the result of running ldd /home/sip/libpjsua2.so

linux-vdso.so.1 (0x00007ffee372b000)
    libpjsua.so.2 => /usr/local/lib/libpjsua.so.2 (0x00007fdab1d55000)
    libpjsip-simple.so.2 => /usr/local/lib/libpjsip-simple.so.2 (0x00007fdab1d3c000)
    libpjsip.so.2 => /usr/local/lib/libpjsip.so.2 (0x00007fdab1ce3000)
    libpjmedia.so.2 => /usr/local/lib/libpjmedia.so.2 (0x00007fdab1c7b000)
    libpjlib-util.so.2 => /usr/local/lib/libpjlib-util.so.2 (0x00007fdab1c4f000)
    libpj.so.2 => /usr/local/lib/libpj.so.2 (0x00007fdab1c13000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fdab19d3000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fdab19b3000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdab178b000)
    libpjsip-ua.so.2 => /usr/local/lib/libpjsip-ua.so.2 (0x00007fdab176b000)
    libpjmedia-audiodev.so.2 => /usr/local/lib/libpjmedia-audiodev.so.2 (0x00007fdab1761000)
    libpjmedia-codec.so.2 => /usr/local/lib/libpjmedia-codec.so.2 (0x00007fdab174f000)
    libpjnath.so.2 => /usr/local/lib/libpjnath.so.2 (0x00007fdab1719000)
    libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007fdab12d7000)
    libsrtp.so.2 => /usr/local/lib/libsrtp.so.2 (0x00007fdab12c1000)
    libresample.so.2 => /usr/local/lib/libresample.so.2 (0x00007fdab12b2000)
    libspeex.so.2 => /usr/local/lib/libspeex.so.2 (0x00007fdab1282000)
    libwebrtc.so.2 => /usr/local/lib/libwebrtc.so.2 (0x00007fdab1257000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fdab1170000)
    libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3 (0x00007fdab10cc000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fdab1f0e000)
    libasound.so.2 => /lib/x86_64-linux-gnu/libasound.so.2 (0x00007fdab0fc9000)
    libgsmcodec.so.2 => /usr/local/lib/libgsmcodec.so.2 (0x00007fdab0fbd000)
    libilbccodec.so.2 => /usr/local/lib/libilbccodec.so.2 (0x00007fdab0faa000)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文