.dll 已加载到另一个类加载器中

问题描述 投票:0回答:2

我正在将 Web 服务集成到我的 Web 应用程序中。 Web 服务为我提供了 .dll 和 .jar 文件。 我将 .dd 放在 /jre/bin 中,将 .jar 放在 /jre/lib 中 之后,我开发了代码并部署了应用程序。 在开发过程中,我还将 .jar 文件包含在我的项目构建路径中。 通过 Tomcat 运行它时,它给了我错误:

java.lang.UnsatisfiedLinkError: Native Library .dll already loaded in another classloader

有人可以告诉我我哪里错了吗? 我确实搜索了这个问题,但没有一个答案是明确的。

当我删除 .dll 或 .jar 文件时,我的程序失败并表示找不到它。 我也尝试从我的外部库中删除它,但这也不起作用

请帮忙

谢谢, 阿克谢

java dll
2个回答
0
投票

您不能两次加载同一个库。

将类粘贴到

/lib/
下的jar文件中,它将与其他.WAR文件共享。


0
投票

我遇到了这个问题,并通过删除使用一个“.dll”的其他“.jar”文件来解决

如果您的项目和 tomcat/lib 中存在相同的 .jar 文件(并且可能位于 jre/bin 中),并且所有这些“.jar”都需要尝试获取一种资源,则会出现此问题。

我删除了所有 RxTxcomm.jar,除了 tomcat/lib 中的一个。

就我而言,我在“myproject/lib”、“tomcat/lib”和“jre/lib”中有“RxTxcomm.jar”,而rxtxserial.dll在jre/bin中。

所以我的问题解决了。

© www.soinside.com 2019 - 2024. All rights reserved.