Программная установка Java.library.path

Могу ли я установить java.library.path программно из самого java-кода?

Следующее не работает.

    System.setProperty("java.library.path", "/blah");
15
задан Fakrudeen 2 August 2011 в 09:08
поделиться

1 ответ

Я просто заключаю в кавычки из ссылки, предоставленной secmask ( https://cedarsoft.com/blog.html ), в случае, если ссылка идет мертвая:

Изменение системного свойства java.library.path позже doesn’t имеет любой эффект, так как свойство оценивается очень рано и кэшируется. Но парни в jdic обнаружили путь, как работать вокруг этого. Это - немного грязный †“, но эй, те взломы являются причиной, все мы любим Java.

System.setProperty("java.library.path", "/path/to/libs");
Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths");
fieldSysPath.setAccessible(true);
fieldSysPath.set(null, null);

Объяснение:

Сначала системное свойство обновляется с новым значением. Это могло бы быть относительным путем †“, или возможно Вы хотите создать тот путь динамично. Classloader имеет статическое поле (sys_paths), которое содержит пути. Если то поле установлено на null, оно инициализируется автоматически. Поэтому принуждение того поля к null закончится в переоценку пути к библиотеке, как только loadLibrary() назван.

0
ответ дан 1 December 2019 в 01:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: