运行AWS Kinesis Video Java Producer SDK Demo出现JNI链接错误如何解决
错误原因与解决方案
这个报错的核心是Java虚拟机无法找到Kinesis Video Streams依赖的本地JNI库,你的启动命令存在两处明显配置错误,按以下步骤修正即可:
1. 修正java.library.path配置
java.library.path参数需要指定本地库文件所在的目录,而非dll文件的完整路径,JVM会自动在指定目录下搜索对应名称的库文件。
2. 拆分JVM启动参数
你把所有-D开头的JVM参数都放在同一组引号内,会被JVM识别为单个参数导致解析失败,需要拆分每个参数单独配置。
3. 修正后的启动命令参考
java -classpath target/amazon-kinesis-video-streams-producer-sdk-java-1.11.0-jar-with-dependencies.jar ^ -Daws.accessKeyId=fake_accessKeyID ^ -Daws.secretKey=fake_secretKey ^ -Dkvs-stream=fake_streamName ^ -Djava.library.path=src\main\resources\lib\windows ^ com.amazonaws.kinesisvideo.demoapp.DemoAppMain
(注:上述命令中的^是Windows cmd的换行符,如果你是PowerShell环境换成反引号`即可,单行执行可以去掉换行符)
额外排查项
如果修正后仍报错,可以依次检查以下内容:
- 确认你的JDK位数和dll文件位数匹配:32位JDK无法加载64位编译的
KinesisVideoProducerJNI.dll,反之同理 - 确认
src\main\resources\lib\windows目录下确实存在KinesisVideoProducerJNI.dll文件,没有缺失或损坏 - 可以尝试将
KinesisVideoProducerJNI.dll放到JDK的bin目录或者C:\Windows\System32系统目录下,无需配置java.library.path也可被正常加载
内容的提问来源于stack exchange,提问作者Bemojo
相关产品推荐
相关产品推荐

