Кажется, что определение библиотеки только позволяет Банки или Папки.
Как я могу гарантировать, что DLL следует за файлом банки, когда приложение создается?
Если вы имеете в виду сборку приложения (или модуля) для платформы NetBeans, то вы можете поместить DLL в папку "release/modules/lib/". Это в разделе FAQ по платформе:
Дополнительная информация здесь:
Если вы спрашиваете в более общем плане, то я думаю, что большинство людей упаковывают DLL в банку, а затем распаковывают ее во временное место при запуске приложения. Например,
Если это не то, что вы ищете, то вам нужно будет предоставить дополнительную информацию о том, что вы пытаетесь сделать.
.NetBeans не сделает его самостоятельно, но так как он использует муравей за кулисами, есть обходной путь.
Вы должны создать подкаталог имени JNI
в вашем каталоге проекта ( C: \ Path \ to \ mynetBeansProject \ JNI
), поставьте все .dll, .so и .jnilib Файлы там (нативные вещи), и добавьте следующие строки к файлу build.xml
, который вы найдете в вашем каталоге проекта, незадолго до метки Project>
:
<target name="-post-compile">
<copy todir="${dist.dir}/lib">
<fileset dir="jni" />
</copy>
</target>
Затем добавьте файл JAR в свой проект, как будто вы всегда делаете. :)
Фрагмент, который вы вставили в build.xml
, убедитесь, что нативные библиотеки следуют за файлами JAR в папке DIST / Lib
, когда вы вызываете «чистите и строить» изнутри NetBeans (или муравей
из командной строки); JVM будет искать файлы .dll (.so, .jnilib) в том же каталоге, что и .jar, который их загружает, поэтому он будет работать.
Обратите внимание, что это не сделает ваш проект запускается изнутри NetBeans, потому что ... Я не совсем уверен, что продолжается, но он выглядит как путь библиотеки ( LD_LIBRARY_PATH
) не включает в себя Библиотеки проектов, и нет никаких способов изменения его в небумах. Просто поставьте свои собственные библиотеки в / библиотеку / Java / расширения
на Mac OS X, или просто заметили их в C: \ Windows \ System32
под Windows. Если вы используете 64-битные окна с 64-битным JVM, у меня нет подсказки; Если вы запускаете Linux, вы, вероятно, знаете, куда их раскрыть, но / usr / lib / java
может быть хорошей ставкой.