使用JNI的NetBeans库 我可以定义一个在NetBeans中使用JNI的库吗?
库定义似乎只允许JAR或文件夹使用JNI的NetBeans库 我可以定义一个在NetBeans中使用JNI的库吗?,netbeans,java-native-interface,Netbeans,Java Native Interface,库定义似乎只允许JAR或文件夹 如何确保在构建应用程序时DLL遵循jar文件?假设您指的是构建NetBeans平台应用程序(或模块),那么您可以将DLL放在“release/modules/lib/”文件夹中。这是根据平台常见问题解答: 其他信息如下: 如果你问的是更一般的问题,那么我认为大多数人会将DLL打包到jar中,然后在应用程序启动时将其解压缩到临时位置。e、 g 如果这不是你想要的,那么你需要提供更多关于你想要做什么的信息。netbeans不会自己做,但是因为它在幕后
如何确保在构建应用程序时DLL遵循jar文件?假设您指的是构建NetBeans平台应用程序(或模块),那么您可以将DLL放在“release/modules/lib/”文件夹中。这是根据平台常见问题解答:
如果这不是你想要的,那么你需要提供更多关于你想要做什么的信息。netbeans不会自己做,但是因为它在幕后使用ant,所以有一个解决方法 您应该在项目目录中创建一个名为
jni
的子目录(c:\path\to\mynetbeansproject\jni
),将所有.dll、.so和.jnilib文件放在其中(本机文件),并将以下行添加到项目目录中的build.xml
文件中,就在
标记之前:
<target name="-post-compile">
<copy todir="${dist.dir}/lib">
<fileset dir="jni" />
</copy>
</target>
然后像往常一样将jar文件添加到项目中。:)
插入build.xml
中的代码片段将确保当您从netbeans(或从命令行调用ant
中的“Clean and build”时,本机库遵循dist/lib
文件夹中的jar文件;jvm将在与加载它们的.jar相同的目录中查找.dll(.so、.jnilib)文件,因此它将工作
请注意,这不会使您的项目从netbeans中运行,因为…我不确定发生了什么,但它看起来像库路径(
LD_library_path
)不包括您的项目的库,而且我不知道如何从netbeans中更改它。只需将您的本机库放在mac os x上的/Library/Java/Extensions
中,或将它们存放在windows下的c:\windows\system32
中即可。如果您运行的是64位windows和64位jvm,我不知道;如果您正在运行linux,您可能知道将它们存放在何处,但/usr/lib/java
可能是一个不错的选择。我在使用NetBeans 7.0.1时测试了以下解决方案,该解决方案有效,但我不知道它在早期版本中是否也有效
该解决方案很简单,每个NetBeans模块都可以使用。因此,如果您有一个套件,不要将它的JNI文件放入套件项目,而是将您想要的JNI文件放入模块本身。做:
不,特别是指定义可以添加到项目中的库。其中关于在jar中打包dll的要点很有趣。