NetBeans не будет делать это самостоятельно, но так как он использует муравей за кулисами, есть обходной путь.
Вы должны создать подкаталог с именем jni
в каталоге вашего проекта (c:\path\to\mynetbeansproject\jni
), поместить туда все файлы .dll, .so и .jnilib (нативные вещи) и добавить следующие строки в * Файл 1005 *, который вы найдете в каталоге вашего проекта, перед тегом </project>
:
<target name="-post-compile">
<copy todir="${dist.dir}/lib">
<fileset dir="jni" />
</copy>
</target>
затем добавьте jar-файл в ваш проект, как вы всегда это делаете. :)
фрагмент, который вы вставили в build.xml
, обеспечит, чтобы собственные библиотеки следовали вашим jar-файлам в папке dist/lib
, когда вы вызываете «Очистить и собрать» из сетевых компонентов (или ant
из командной строки); jvm будет искать файлы .dll (.so, .jnilib) в том же каталоге, что и загружаемый файл .jar, поэтому он будет работать.
обратите внимание, что это не заставит ваш проект работать изнутри netbeans, потому что ... я не совсем уверен, что происходит, но похоже, что путь к библиотеке (LD_LIBRARY_PATH
) не включает библиотеки ваших проектов, и я не знаю, как изменить его изнутри. просто поместите ваши нативные библиотеки в /Library/Java/Extensions
на Mac OS X или просто спрятайте их в c:\windows\system32
под Windows. если вы используете 64-битные окна с 64-битной jvm, я понятия не имею; если вы используете Linux, вы, вероятно, знаете, где их хранить, но /usr/lib/java
может быть хорошей идеей.