任何人都可以告訴我在Java方面圖書館和本地庫之間的區別?我發現下面一行字「機庫」:庫和本地庫之間的差異
類型1 - 實現了 JDBC API作爲一個映射到另一個數據 訪問API,如ODBC驅動程序。 的驅動程序通常依賴於 本地庫,這限制了它們的可移植性。 JDBC-ODBC Bridge 驅動程序是Type 1 驅動程序的示例。
,你可以發現here
任何人都可以告訴我在Java方面圖書館和本地庫之間的區別?我發現下面一行字「機庫」:庫和本地庫之間的差異
類型1 - 實現了 JDBC API作爲一個映射到另一個數據 訪問API,如ODBC驅動程序。 的驅動程序通常依賴於 本地庫,這限制了它們的可移植性。 JDBC-ODBC Bridge 驅動程序是Type 1 驅動程序的示例。
,你可以發現here
「本地庫」通常是指系統使用的非Java庫(如C/C++等)。認爲正常的DLL或庫。
Java可以通過JNI加載這些本地庫。
本機庫是一個包含「原生」的代碼庫。也就是說,已針對特定硬件架構或操作系統(如x86或Windows)編譯的代碼。
在您的項目中包含這樣的本地庫可能會破壞您的應用程序的平臺獨立性。
在這種情況下,「庫」被認爲是指用Java編寫的庫(並且可能是作爲jar分發的),而「本地庫」是指用類似C或OpenForth編寫的庫並編譯到機器碼。
在Java的上下文中,庫是一種用Java編寫的文件,它以Java字節碼* .class文件的形式提供,通常壓縮爲JAR壓縮文件。相比之下,本地庫是一種已編譯爲機器代碼的庫,通常用C或C++編寫。本地庫是* .so,* .dylib,* .dll,* .a或* .lib文件(取決於您的平臺),該文件與Java Native Interface(JNI)庫鏈接,並將功能從C或C++公開Java通過Java Native Interace機制。
+1供參考JNI – tangens 2010-05-18 20:01:48
可以通過JNI加載.dll文件嗎? – aioobe 2010-05-18 20:04:42
絕對如此。我只使用專門爲使用JNI而設計的DLL來完成它,所以我不確定是否可以加載任何DLL,但爲普通的本機庫創建JNI包裝通常不會太困難(煩惱繁忙,但不是一般很難)。 – Herms 2010-05-18 20:07:46