0

我们使用com.sun.jna包从外部库(DLL)调用方法。该库使用一些支持/缓存数据(DAT 文件),它写入“当前工作目录”中。不幸的是,当我们将文件扩展名与我们的应用程序关联时(在 Windows 中双击打开我们的文件),当前工作目录被设置为正在打开的文件的目录,因此我们的 DLL 将其缓存数据写入到打开的文件。这样,如果我们从 HDD 上的不同位置打开许多文件,我们的 DLL 缓存将遍布整个系统。我们还想控制保存任何缓存/临时/支持数据的地方——我们确实控制了它,除了有问题的 DLL 的缓存。

有什么方法可以让我为这个 DLL 设置“当前工作目录”,同时通过来自的类与它通信com.sun.jna?我可以以某种方式覆盖此设置并将其传递给 JNA 吗?

提前感谢您的任何想法。彼得

4

1 回答 1

0

您可以在 jvm 中使用 更改它System.setProperty("user.dir","yourpath");,但我不知道在 jna 调用之后该更改是否会被 dll 继承。

于 2012-03-06T14:28:29.487 回答