【发布时间】:2021-03-11 08:36:06
【问题描述】:
我已经下载了 ant-media-server 文件并尝试启动服务器。
但是,我最近learned 说 Ant 媒体服务器需要 java 11。
所以我将 java 版本更新为 java 11:
所以当我运行这个命令时:
java-版本
这是结果:
openjdk 版本“11.0.11-ea”2021-04-20
OpenJDK 运行时环境(构建 11.0.11-ea+4-Ubuntu-0ubuntu3.16.04.1)
OpenJDK 64 位服务器虚拟机(内部版本 11.0.11-ea+4-Ubuntu-0ubuntu3.16.04.1, 混合模式,共享)
当我运行这个命令时:
javac-版本
这是结果:
javac 11.0.11-ea
当我尝试启动 Ant Media Server 时,我得到的结果是:
Bootstrap exception: null
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.red5.server.Bootstrap.bootStrap(Bootstrap.java:122)
at org.red5.server.Bootstrap.main(Bootstrap.java:50)
Caused by: java.lang.UnsatisfiedLinkError: no jniavutil in java.library.path: [/home/ahmed/Desktop/CodingPlayground/ant_media_server/ant_media_server/lib/native]
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2670)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
at java.base/java.lang.System.loadLibrary(System.java:1873)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1683)
at org.bytedeco.javacpp.Loader.load(Loader.java:1300)
at org.bytedeco.javacpp.Loader.load(Loader.java:1123)
at org.bytedeco.ffmpeg.global.avutil.<clinit>(avutil.java:14)
at org.red5.server.Launcher.launch(Launcher.java:65)
... 6 more
Caused by: java.lang.UnsatisfiedLinkError: /home/ahmed/.javacpp/cache/ffmpeg-4.3.1-1.5.4-linux-x86_64.jar/org/bytedeco/ffmpeg/linux-x86_64/libjniavutil.so: libva-drm.so.2: cannot open shared object file: No such file or directory
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
at java.base/java.lang.Runtime.load0(Runtime.java:768)
at java.base/java.lang.System.load(System.java:1837)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1633)
... 10 more
知道发生了什么吗?
编辑 1:
当我检查JAVA_HOME环境变量时,我发现它仍然指向java-8文件:
JAVA_HOME=/usr/lib/jvm/java-8-oracle
于是我尝试查看/usr/lib/jvm 中的文件,结果如下:
那么也许这是导致问题的原因?
我不知道应该让JAVA_HOME 指向哪个文件。
编辑 2:
我打开/etc/environment并将JAVA_HOME修改为:
JAVA_HOME='/usr/lib/jvm/java-11-openjdk-amd64'
我还通过运行全局更改了它:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
而且,我仍然遇到同样的错误。
【问题讨论】:
-
它看起来需要加载
libva-drm.so.2,但默认构建不需要这样做,因此您必须使用自定义构建。尝试使用默认构建或在您的系统上安装libva-drm.so.2。
标签: java linux red5 java-home ant-media-server