Чтобы загрузить .DLL (под Windows) или .SO (под Linux), мы должны использовать переменные окружения PATH (Windows) или LD_LIBRARY_PATH (Linux).
Единственный способ найти правильное использование DLL и SO - это определить переменные среды перед запуском NetBeans.
- Есть ли способ указать эти переменные среды внутри
Netbeans?
- Можно ли указать это внутри проекта
свойства? Таким образом, у каждого проекта могут быть свои определения.
- есть ли способ просто добавить эти переменные окружения вместо того, чтобы просто переопределить их?
Справочная информация: мы разрабатываем программу на Java, которая использует JNI для доступа к собственным библиотекам. Эти нативные библиотеки, в свою очередь, получают доступ к другим зависимым нативным библиотекам. Из-за этого просто установка свойства "java.library.path" не работает, так как нам нужно также установить полный LD_LIBRARY_PATH (или обычный PATH в случае Windows).
За пределами NetBeans приложение работает нормально, потому что мы устанавливаем переменные среды внутри сценариев оболочки.
Мы не хотим просто помещать библиотеки DLL или SO в обычные системные каталоги, потому что мы не хотим путаться с установкой операционной системы во время разработки. Кроме того, нам нужна гибкость, позволяющая любому разработчику просто получить проект из системы управления версиями (Mercurial) и иметь все относительные пути, которые просто работают.
Уже есть хак переполнения стека для программной установки переменных среды в Java . Однако мы ищем менее хакерское решение.