【发布时间】:2011-11-29 09:41:30
【问题描述】:
我正在构建一个 Java 应用程序,该应用程序使用一个用 C++ 编写并针对不同操作系统编译的共享库。问题是,这个共享库本身依赖于它通常在适当的环境变量(PATH、LIBRARY_PATH 或 LD_LIBRARY_PATH)下找到的附加库。
我可以——但不想——设置这些环境变量。我宁愿在运行时从给定路径加载所需的共享库 - 就像插件一样。不 - 我不希望任何启动应用程序在新环境中启动新进程。有人知道如何实现吗?
我知道这一定是可能的,因为我使用的其中一个库能够从给定路径加载其插件。当然我更喜欢平台无关的代码,但如果这不可能,Windows、Linux 和 MacOS 的单独解决方案也可以。
编辑 我应该提到我希望使用的共享库是面向对象的,这意味着单个函数的绑定不会这样做。
【问题讨论】:
-
如何从 Java 加载库?
-
Java 本机访问 (JNA)
标签: c++ plugins shared-libraries