Добавляем низкоуровнивые библиотеки (*.so или *.dll)

Если либа (*.jar) для работы требует *.so или *.dll, то выручает такой прием:

  1. В корне проект делаем папку libs. (Для сервера, например wildfly, создаем в /configuration)
  2. А дальше, перед вызовом библиотечного класса, кастуем магию:

String path = System.getProperty("user.dir") + /libs";
String currentLibPath = System.getProperty("java.library.path");
System.setProperty("java.library.path", currentLibPath + File.Separator + path);

Field sysPathsField = ClassLoader.class.getDeclaredField("sys_paths");
sysPathsField.setAccessible(true);
sysPathsField.set(null, null);

Всё это оборачиваем в try catch.
Для сервера, например, wildfly указываем вот так:

String path = System.getProperty(Constants.JBOSS_SERVER_CONFIG_DIR) + File.separator + "/libs";

Leave a Reply

Your email address will not be published. Required fields are marked *