Для метода load()
требуется полный путь к библиотеке в качестве аргумента.Например, в системе Solaris вы можете написать:
System.load("/home/me/libs/libmylib.so");
, чтобы загрузить библиотеку libmylib.so в каталог /home/me/libs
.
Использование load()
Метод является системно-зависимым, поскольку он использует pathname
для загрузки библиотеки, а имена путей обычно зависят от системы.Таким образом, loadLibrary()
иногда является лучшим выбором.Однако динамически загружаемые библиотеки по своей природе зависят от системы, поэтому использование load()
не может поставить под угрозу независимость системы, равно как и сам процесс загрузки библиотеки.
Для метода loadLibrary()
требуется только имяa для загрузки:
System.loadLibrary("mylib");
Метод loadLibrary()
ищет библиотеку.Поиск, выполняемый loadLibrary()
, зависит от системы, в которой вы работаете, но обычно он выполняет поиск в каталогах, перечисленных в одной из переменных среды, установленных для этой цели.
Вы можете явно указать свой абсолютный путь.
Помимо системной независимости, нет никаких реальных различий в плане безопасности.
Ссылки :
1) https://security.stackexchange.com/questions/35724/security-implications-of-javas-system-load-vs-system-loadlibrary
2) https://www.chilkatsoft.com/java-loadLibrary-Linux.asp