我们正在使用com.sun.jna
包来从外部库(DLL)调用方法。该库使用一些支持/缓存数据(DAT文件),它在“当前工作目录”中写入。
不幸的是,当我们将文件扩展名与我们的应用程序关联时(在Windows中双击打开我们的文件),然后将当前工作目录设置为正在打开的文件的目录,因此我们的DLL将其缓存数据写入打开文件。这样,如果我们从HDD上的不同位置打开许多文件,我们将在整个系统中拥有DLL的缓存。
我们还想控制我们保存任何缓存/临时/支持数据的地方 - 除了相关DLL的缓存外,我们确实控制了它。
有没有办法让我为这个DLL设置'当前工作目录',同时通过com.sun.jna
的类与它通信?我可以以某种方式覆盖此设置并将其传递给JNA吗?
提前感谢您的任何想法。 彼得
答案 0 :(得分:0)
您可以使用System.setProperty("user.dir","yourpath");
在jvm中更改它,但我不知道在jna调用之后该更改是否会被dll继承。