假设您指的是构建NetBeans平台应用程序(或模块),那么您可以将DLL放在“release / modules / lib /”文件夹中。这是根据平台常见问题解答:
其他信息:
如果您更普遍地询问,那么我认为大多数人将DLL打包在jar中,然后在应用程序启动时将其解压缩到临时位置。例如
如果那不是你想要的,那么你需要提供更多关于你想要做什么的信息。
我在使用NetBeans 7.0.1时测试了以下解决方案并且它有效,但我不知道它是否也适用于早期版本。
该解决方案非常简单,适用于NetBeans模块。因此,如果您有套件,请不要将其JNI文件放入套件项目中,而是将所需的JNI文件放入模块本身。做:
因此,将您的本地库放在 的 your_project_dir / release / lib目录 强> 。如果需要,可以为所需的每个目标平台创建子目录,如下所示: 的 your_project_dir / release / lib目录/ AMD64 强> ,your_project_dir / release / lib / sparc32
要了解更多,请阅读: http://bits.netbeans.org/dev/javadoc/org-openide-modules/org/openide/modules/doc-files/api.html#jni
问候, marciowb.info
netbeans不会自己做,但因为它在幕后使用蚂蚁,所以有一个解决方法。
你应该创建一个名为的子目录 jni 在您的项目目录中( c:\path\to\mynetbeansproject\jni ),将所有.dll,.so和.jnilib文件放在那里(本机的东西),并将以下行添加到 build.xml 您在项目目录中找到的文件,就在之前 </project> 标签:
jni
c:\path\to\mynetbeansproject\jni
build.xml
</project>
<target name="-post-compile"> <copy todir="${dist.dir}/lib"> <fileset dir="jni" /> </copy> </target>
然后像往常一样将jar文件添加到项目中。 :)
您插入的代码段 build.xml 将确保本机库遵循您的jar文件 dist/lib 从netbeans中调用“清理和构建”时的文件夹(或 ant 从命令行); jvm将在与加载它们的.jar相同的目录中查找.dll(.so,.jnilib)文件,因此它可以正常工作。
dist/lib
ant
请注意,这不会使您的项目在netbeans中运行,因为...我不确定发生了什么,但它看起来像库路径( LD_LIBRARY_PATH )不包括你的项目库,我不知道从netbeans中改变它。只需将您的本机库放入 /Library/Java/Extensions 在mac os x上,或者只是将它们存入 c:\windows\system32 在窗户下。如果你运行64位jvm的64位窗口,我不知道;如果你正在运行linux,你可能知道在哪里存储它们,但是 /usr/lib/java 可能是一个不错的选择。
LD_LIBRARY_PATH
/Library/Java/Extensions
c:\windows\system32
/usr/lib/java