Установка «текущего рабочего каталога» при общении с DLL через JNA - PullRequest
0 голосов
/ 06 марта 2012

мы используем пакет com.sun.jna для вызова методов из внешней библиотеки (DLL). Эта библиотека использует некоторые данные поддержки / кэша (файлы DAT), которые она записывает в «текущий рабочий каталог». К сожалению, когда мы связываем наше расширение файла с нашим приложением (чтобы открыть наши файлы по двойному щелчку в Windows), тогда текущий рабочий каталог устанавливается в каталог открытого файла, и, таким образом, наша DLL записывает свои данные кэша рядом с открыл файл. Таким образом, если мы откроем много файлов из разных мест на жестком диске, у нас будет кэш нашей DLL по всей системе. Мы также хотели бы контролировать место, где мы сохраняем любые кеш / временные / вспомогательные данные - и мы контролируем это, за исключением кеша рассматриваемой DLL.

Могу ли я установить «текущий рабочий каталог» для этой библиотеки DLL при общении с ней с помощью классов из com.sun.jna? Можно ли как-то перезаписать этот параметр и передать его в JNA?

Заранее спасибо за любые мысли. Петр

1 Ответ

0 голосов
/ 06 марта 2012

Вы можете изменить его в jvm с помощью System.setProperty("user.dir","yourpath");, но я не знаю, будет ли это изменение наследоваться DLL после вызова jna.

...