我正在使用Java Web Start启动一个依赖于一些第三方本机库的Java应用程序。这些本机库随后使用LoadLibrary/dlopen加载另一个本机库(commonLib)作为它们的依赖项。
如果不使用Web Start,则当本机库位于同一目录中时,一切都会按预期运行。
然而,Web Start要求将本地库打包到jar文件中并在jnlp文件中引用,我做到了:
<!-- Windows OS -->
<resources os="Windows">
<nativelib href="native/nativ
我正在做一个项目,在这个项目中,我需要在Linux的同一应用程序中加载同一个库的两个版本。我发现,为了能够在没有任何库冲突问题的情况下成功地实现这一点,我必须使用自己的导出映射对库的两个版本进行符号版本控制。似乎如果运行的应用程序有这样的引用," name @@ nodename ",Linux中的动态加载器将只在nodename中查找名称,而不会在其他地方查找名称。这就是我得出的结论,因为这两个库都是符号版本。这个推理是正确的吗?是否有其他选项可以在同一应用程序中加载同一个库的两个版本,而不会出现库冲突?
我有些怀疑:
用例:
A static library containing a global variable, static variable, a function
and a class defined
A shared library uses these and hence they are part of the same.
A executable program also uses the same and they are part of the same.
The executable loads the shared library