2010-05-18 14 views
8

Czy ktoś mógłby mi powiedzieć, jaka jest różnica między biblioteką a biblioteką macierzystą pod względem java? Uważam, że słowo „native biblioteki” w następujący wiersz:Różnica między biblioteką a biblioteką macierzystą

Type 1 - sterowniki, które implementują interfejs API JDBC jako mapowanie do kolejnych danych dostępu API, takich jak ODBC. Sterowniki tego typu są generalnie zależne od biblioteki natywnej , co ogranicza ich przenośność. Sterownik JDBC-ODBC Bridge jest przykładem sterownika typu 1 .

które można znaleźć here

Odpowiedz

13

"Biblioteka natywna" oznacza ogólnie bibliotekę inną niż Java, która jest używana przez system (czyli C/C++ itd.). Pomyśl o normalnych bibliotekach DLL lub bibliotekach.

Java może załadować te natywne biblioteki przez JNI.

+0

+1 dla odniesienia do JNI – tangens

+0

Czy java może załadować pliki .dll przez JNI? – aioobe

+0

Absolutnie. Zrobiłem to tylko z bibliotekami DLL zaprojektowanymi specjalnie do pracy z JNI, więc nie jestem pewien, czy możesz załadować dowolną bibliotekę DLL, ale generalnie nie jest trudno utworzyć opakowanie JNI dla normalnej biblioteki macierzystej (denerwujące zajęcie, ale nie ogólnie trudne). – Herms

1

rodem biblioteka jest biblioteką, która zawiera "native" kod. Oznacza to, że kod został skompilowany dla konkretnej architektury sprzętowej lub systemu operacyjnego, na przykład x86 lub Windows.

Włączenie takiej biblioteki natywnej do projektu może spowodować utratę niezależności od platformy użytkownika.

0

W tym kontekście zakłada się, że "biblioteka" odnosi się do biblioteki napisanej w Javie (i prawdopodobnie dystrybuowanej jako słoik), podczas gdy "biblioteka natywna" odnosi się do biblioteki napisanej w języku C lub OpenForth i skompilowanej do maszyny kod.

0

W kontekście Java, biblioteka jest jedną napisaną w języku Java i dostępna w postaci plików kodu bajtowego Java. *, Zazwyczaj skompresowanych do archiwum JAR. Natomiast biblioteka natywna to taka, która została skompilowana do kodu maszynowego i zazwyczaj jest napisana w języku C lub C++. Bibliotekami macierzystymi są pliki * .so, * .dylib, * .dll, * .a lub * .lib (w zależności od platformy), które łączą się z biblioteką JNI (Java Native Interface) i udostępniają funkcje z C lub C++. Java za pośrednictwem mechanizmu Java Native Interace.

Powiązane problemy