如何同时从 Tomcat 服务器上的两个不同的 SpringBoot 应用程序加载 DLL?

How can I load a DLL from two different SpringBoot applications on a Tomcat server at the same time?

我正在尝试将同一个 Spring-Boot 应用程序的两个版本(主版本、开发版本)部署到 Tomcat 8 服务器中,但我无法加载它需要的 DLL上班。

如果我部署应用程序的单个版本(master 或 develop),它就像一个魅力,但如果我尝试部署另一个,它会抛出 java.lang.UnsatisfiedLinkError

DLL 在 Tomcat 的 bin 文件夹中。

看来我无法同时从两个应用程序加载 DLL(从未听说过)或者第二个应用程序不知何故正在其他地方寻找它们...

我对每个应用程序都有不同的配置文件,我尝试以各种方式指定 DLL 的位置:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
  <Parameter name="spring.profiles.active" value="production"/>
  <Parameter name="spring.config.location" value="<path to properties>"/>

  <!-- This did not work -->
  <Environment name="LD_LIBRARY_PATH" value="<Path to DLLs>" type="java.lang.String"/>
  <!-- Neither did this -->
  <Environment name="java.library.path" value="<Path to DLLs>" type="java.lang.String"/>

</Context>

有什么方法可以告诉 Tomcat 从每个应用程序的不同文件夹加载 DLL?

为什么我不能对它们使用同一个 DLL?

非常感谢任何帮助。

根据 看来你不能在一个 JVM 上加载一个 DLL 两次,所以我们 "fixed" 它有两个不同的 Tomcat 服务器。