Как вы можете найти, где System.loadLibrary () находит библиотеку? - PullRequest
2 голосов
/ 07 января 2011

Можете ли вы узнать, откуда System.loadLibrary () находит библиотеку DLL с помощью вызовов методов Java или инструментов Windows?

У нас есть некоторый код, который мы ожидаем потерпеть неудачу, поскольку он загружает собственную библиотеку с System.loadLibrary () и это неожиданно удается!Мы думаем, что удалили все копии соответствующей DLL из PATH и удалили аргумент java.library.path, но каким-то образом код все равно успешно выполняется.Мы перезагрузили компьютер (чтобы убедиться, что он не скрывается в памяти).Мы, должно быть, делаем что-то глупое, но не можем понять, что.

Ответы [ 2 ]

2 голосов
/ 07 января 2011

Попробуйте System.getProperty("java.library.path");

, если ваша библиотека находится в одном из этих мест, то она будет проверена

1 голос
/ 07 января 2011

Разве ProcessExplorer не показывает, какие DLL загружены и откуда?


Редактировать из OP.

ProcessExplorer делает. Запустите его, а затем выполните «поиск», чтобы найти свою DLL. Он покажет все процессы, к которым он подключен - ваш Java-процесс должен быть одним из них. Строка «handle or dll» также даст полный путь к месту нахождения DLL.

...