使用JNI在Java中使用PJSIP
我正在尝试在自己的独立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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论