Java - разница между библиотекой и нативной библиотекой - PullRequest
10 голосов
/ 18 мая 2010

Может ли кто-нибудь сказать мне разницу между библиотекой и нативной библиотекой с точки зрения Java? Я нашел слово «нативная библиотека» в следующей строке:

Тип 1 - драйверы, которые реализуют JDBC API как отображение на другие данные API доступа, такой как ODBC. Водители этот тип обычно зависит от родная библиотека, которая ограничивает их портативность. Мост JDBC-ODBC Драйвер является примером типа 1 водитель.

которые вы можете найти здесь

Ответы [ 4 ]

16 голосов
/ 18 мая 2010

«Собственная библиотека» обычно означает не-Java библиотеку, которая используется системой (например, C / C ++ и т. Д.). Думайте нормальные библиотеки DLL или библиотеки.

Java может загружать эти нативные библиотеки через JNI.

1 голос
/ 19 мая 2010

В контексте Java библиотека - это библиотека, написанная на Java и доступная в виде файлов байт-кода Java * .class, обычно сжатых в архив JAR. Напротив, нативная библиотека - это библиотека, скомпилированная в машинный код и обычно написанная на C или C ++. Собственные библиотеки - это файлы * .so, * .dylib, * .dll, * .a или * .lib (в зависимости от вашей платформы), которые связаны с библиотекой Java Native Interface (JNI) и предоставляют функциональность из C или C ++ для Java через механизм Java Native Interace.

1 голос
/ 18 мая 2010

Нативная библиотека - это библиотека, которая содержит «нативный» код. То есть код, который был скомпилирован для конкретной аппаратной архитектуры или операционной системы, такой как x86 или windows.

Включение такой нативной библиотеки в ваш проект может нарушить независимость платформы вашего приложения.

0 голосов
/ 18 мая 2010

В этом контексте «библиотека» подразумевает ссылку на библиотеку, написанную на Java (и, вероятно, распространяемую в виде jar), тогда как «нативная библиотека» относится к библиотеке, написанной на что-то вроде C или OpenForth и скомпилированной в машинный код. .

...