Как вызвать DLL-файлы в Java - PullRequest
0 голосов
/ 27 ноября 2018

Мне нужно вызвать файл DLL advapi32.dll в Java, чтобы я мог использовать его CryptEncrypt функцию для шифрования.Можно ли получить доступ к функциям файлов DLL через JNI или есть какие-либо другие лучшие способы

advapi32.dll находится в папке system32 Windows

Я пыталсяиспользуя

System.loadLibrary("advapi32");

и

Runtime.getRuntime().loadLibrary("C:/Windows/System32/crypt32.dll");

Runtime.getRuntime (). loadLibrary (), выдавая следующие ошибки

Exception in thread "main" java.lang.UnsatisfiedLinkError: no C:/Windows/System32/crypt32.dll in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.Runtime.loadLibrary(Unknown Source)
at mail.encrypt.main(encrypt.java:17)

1 Ответ

0 голосов
/ 30 ноября 2018

Укажите путь к lib, используя приведенную ниже команду

java -Djava.library.path=C:/Windows/System32/

Или используйте приведенный ниже хакерский путь внутри кода

System.setProperty( "java.library.path", "C:/Windows/System32/" );
Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths"); 
fieldSysPath.setAccessible( true ); 
fieldSysPath.set( null, null );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...