0
在我的netbeans桌面应用程序中,我在项目中保存了Rxtx的.dll文件。我可以为这些.dll文件设置库路径吗?为jar文件中的dll设置库路径
这是项目层次
PROJECTNAME
pacakge1
rxtx rxtxSerial.dll rxtxParall.dll
包2
META-INF
在此先感谢。
在我的netbeans桌面应用程序中,我在项目中保存了Rxtx的.dll文件。我可以为这些.dll文件设置库路径吗?为jar文件中的dll设置库路径
这是项目层次
PROJECTNAME
pacakge1
rxtx
rxtxSerial.dll
rxtxParall.dll
包2
META-INF
在此先感谢。
当java代码加载本地库(通常通过System.load()
完成)时,此调用是对OS的本机调用。 DDL的实际加载由OS完成(如果不是这样,请纠正我)。在这种情况下,操作系统将需要一个确定的路径来加载dll。如果DLL在一些jar文件中,操作系统不会识别jar文件结构(它只能被java运行库解释),因此当打包到jar中时不会发现这些文件。
只是一个例子,对于一个标准的JDK分布,所有的类文件被打包在文件rt.jar
,而所有的本机代码的DLL(插座,AWT等)是在一个单独的位置(jre/bin
)。所以我的建议是,创建两个文件一个jar和其他DLL。创建一个ZIP存档。现在,如果有人需要使用它,必须解压缩,将jar保存在PATH中的类路径和DLL中。
是的,DLL加载是由操作系统完成的,如果DLL存储在一个jar文件中,那么它们必须在(Windows)文件系统的某处被提取,然后才能被加载。没有办法绕过它。 –