2010-05-18 3 views
8

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

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

, которые вы можете нашли here

ответ

13

«Родная библиотека» обычно означает библиотеку, отличную от Java, используемую системой (поэтому C/C++ и т. Д.). Думайте о нормальных DLL или lib.

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

+0

+1 для ссылки на JNI – tangens

+0

Может ли java загружать DLL-файлы через JNI? – aioobe

+0

Абсолютно. Я только делал это с DLL, специально разработанными для работы с JNI, поэтому я не уверен, что вы можете загружать любую DLL, но обычно не так сложно создать обертку JNI для обычной родной библиотеки (раздражающая занятость, но не обычно трудно). – Herms

1

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

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

0

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

0

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

Смежные вопросы