尽管找我的Java项目的方式来加载都挤满了项目库的二进制文件,我看到几个人指出了诸如:为什么Java应用程序无法从它自己的.jar装入库二进制文件?
之前,你可以使用你需要实际提取这些从这些DLL JAR并将它们转储到硬盘上,否则您将无法加载这些文件
该声明是否正确?为什么?
尽管找我的Java项目的方式来加载都挤满了项目库的二进制文件,我看到几个人指出了诸如:为什么Java应用程序无法从它自己的.jar装入库二进制文件?
之前,你可以使用你需要实际提取这些从这些DLL JAR并将它们转储到硬盘上,否则您将无法加载这些文件
该声明是否正确?为什么?
DLL(动态链接库)是操作系统特定的。操作系统需要能够直接找到文件以加载它们。一个jar文件本质上是一个zip文件,操作系统不会去寻找zip/jar文件来查找DLL。
为了使操作系统找到一个DLL,它需要直接在文件系统上访问,也需要在操作系统的DLL路径中访问。
请注意,jar是Java特定的实体,Java与操作系统不同。通过依赖于特定于操作系统的DLL(或Linux中的.o文件),您将限制程序在与库兼容的操作系统上工作 - 即使位(32位或64位)对于DLL也很重要。这就是说,如果您确实需要包含并使用DLL,那么您需要某种安装程序或说明来在运行之前获取文件。
动态链接库(DLL)是系统特定的,加载它们会调用JVM及其类加载器范围之外的某些操作系统操作。
因此,您不能轻易地从jar文件中加载它们。