儘管找我的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文件中加載它們。