У меня возникла проблема с загрузкой простой .dll через java's System.loadLibrary ("name.dll"); У меня есть одна копия dll в C: \ libraries \ name.dll, а также другая копия в папке system32. Обратите внимание, что C: \ libraries не входит в переменную среды пути. По какой-то причине, когда я называю System.loadLibrary («name.dll»), я получаю:System.loadLibrary() дает java.lang.UnsatisfiedLinkerError: не удается загрузить библиотеку
java.lang.UnsatisfiedLinkError: Can't load library: C:\libraries\name.dll
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1706)
at java.lang.Runtime.load0(Runtime.java:770)
at java.lang.System.load(System.java:1003)
Даже после того, как я удалил name.dll из C: \ библиотеки, я все еще получаю эту же ошибку , Есть ли причина, по которой System.load находит .dll в месте, которое не находится в пути, и почему оно все еще выглядит в этом месте даже после удаления файла?
dll должно быть в вашем пути к классам для загрузки. –
Является ли это dll COM? Может ли он быть зарегистрирован regsvr32? – Motes
Имеет ли 'name.dll' какие-либо зависимые dll? Является ли процесс Java запущенным в 'C: \ libraries'? – hmjd