gpt4 book ai didi

java - 无法在 Linux 中加载库 MediaInfo

转载 作者:行者123 更新时间:2023-11-29 05:50:00 30 4
gpt4 key购买 nike

我正在开发一个使用 mediainfo 库的 java 项目。我的带有 midiainfo.dll 的 JNA 代码在 Windows 中工作正常,但是当我在 Linux 中运行我的代码时它不工作并给出以下异常 -

java.lang.UnsatisfiedLinkError: Unable to load library 'MediaInfo': libMediaInfo.so: cannot open shared object file: No such file or directory

我的 jave 代码是这样写的 -

interface MediaInfoDLL_Internal extends Library
{

MediaInfoDLL_Internal INSTANCE = (MediaInfoDLL_Internal) Native.loadLibrary("MediaInfo", MediaInfoDLL_Internal.class, singletonMap(OPTION_FUNCTION_MAPPER, new FunctionMapper()
{

public String getFunctionName(NativeLibrary lib, Method method)
{
// MediaInfo_New(), MediaInfo_Open() ...
return "MediaInfo_" + method.getName();
}
}
));


//Constructor/Destructor
Pointer New();
void Delete(Pointer Handle);

//File
int Open(Pointer Handle, WString file);
void Close(Pointer Handle);

//Infos
WString Inform(Pointer Handle);
WString Get(Pointer Handle, int StreamKind, int StreamNumber, WString parameter, int infoKind, int searchKind);
WString GetI(Pointer Handle, int StreamKind, int StreamNumber, int parameterIndex, int infoKind);
int Count_Get(Pointer Handle, int StreamKind, int StreamNumber);

//Options
WString Option(Pointer Handle, WString option, WString value);
}

只需在类路径中添加 mediainfo.dll,这就像魔术一样工作,但在 linux 中,我尝试添加 libmediainfo.so.0、libmediainfo.so.0.0.0、libzen.so.0 和 libzen.so。 0.0.0 但没有运气......

有人知道如何在 linux 中运行 mediainfo+java 吗?

我使用的是 Java 6、CentOS 5.6 最终版本和最新的 mediainfo 版本。

最佳答案

*nix 上的文件名区分大小写,因此如果您的库名为 libmediainfo.so,则需要更改

Native.loadLibrary("MediaInfo",....

Native.loadLibrary("mediainfo",

关于java - 无法在 Linux 中加载库 MediaInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14291453/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com