Ant媒体服务器:java.lang.reflect.InvocationTargetException
我已下载ant media server文件并尝试启动服务器。Ant媒体服务器:java.lang.reflect.InvocationTargetException,java,linux,red5,java-home,ant-media-server,Java,Linux,Red5,Java Home,Ant Media Server,我已下载ant media server文件并尝试启动服务器。 但是,我最近发现Ant Media Server需要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.
但是,我最近发现Ant Media Server需要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版本 结果是: JavaC11.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
所以我试着在/usr/lib/jvm
中查看文件,这就是我发现的:那么,这可能是问题的根源吗?
我不知道应该将
JAVA\u HOME
指向哪个文件
编辑2: 我打开了
/etc/environment
并将JAVA\u主页修改为:
JAVA_HOME='/usr/lib/jvm/java-11-openjdk-amd64'
我还通过运行以下命令对其进行了全局更改:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
而且,我仍然得到相同的错误。检查/etc/profile中的变量 您可以如下设置java环境强文本变量:
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
强文本变量是什么意思?请查看我的编辑它似乎需要加载
libva drm.so.2
,但默认版本不需要它,因此必须使用自定义版本。尝试在您的系统上使用默认的构建或安装libva drm.so.2
。
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar