在我的netbeans桌面应用程序中,我将Rxtx的.dll文件保存在项目中。我可以为那些.dll文件设置库路径。
这是项目层次结构
PROJECTNAME
pacakge1
rxtx
rxtxSerial.dll
rxtxParall.dll
包2
META-INF
提前致谢。
答案 0 :(得分:4)
当java代码加载本机库(通常通过System.load()
完成)时,此调用是对OS的本机调用。 DDL的实际加载是由OS完成的(如果不是这样,请纠正我)。在这种情况下,操作系统需要确定路径才能加载dll。如果DLL在某个jar文件中,操作系统无法识别jar文件结构(它只能由java运行时解释),因此在jar中打包时不会找到这些文件。
举个例子,对于标准JDK发行版,所有类文件都打包在rt.jar
文件中,而所有本机代码DLL(套接字,awt等)都位于不同的位置(jre/bin
)。所以我的建议是,创建一组文件,一个jar和其他DLL。创建ZIP存档。现在,如果有人需要使用它,必须解压缩,将jar保存在类路径中,并将DLL保存在PATH中。