Java Native Interface (JNI) — стандартний механізм для запуску коду, під управлінням віртуальної машини Java (JVM), який написаний на мовах С/ чи Ассемблер, та скомпонований у вигляді динамічних бібліотек, дозволяє не використовувати статичне зв'язування. Це дає можливість викликати функції С/С++ з програми на Java, і навпаки. Більш ранні інтерфейси, на відміну від JNI, не влаштовують умови бінарної сумісності.
Призначення
Основною перевагою JNI перед попередньою версією (JDK 1.0 NMI — Native Method Invocation) та іншими схожими інтерфейсами (Netscape Java Runtime Interface чи Microsoft's Raw Native Interface and COM/Java Interface) є те, що JNI початково розроблявся для забезпечення бінарної сумісності, для сумісності додатків, написаних з використанням JNI, для будь-яких віртуальних машин Java на конкретній платформі. Саме тому скомпільований С/ код має виконуватися Java-машинами наприклад, в різних браузерах, середовищах розробки, подібних Symantec Visual Cafe та Sun Java Workshop, для конкретної платформи (Win32 в даному випадку). Більш ранні інтерфейси не задовольняють умови бінарної сумісності.
За допомогою цього механізму байт-код Java може взаємодіяти з системним або прикладним платформенно-орієнтированим кодом, запущеним під управлінням різних операційних систем. Наприклад, до ряду системних викликів прикладного інтерфейсу програмування Windows (Windows API), Mac OS API чи (GNU/Linux)
Платформенно-незалежний інтерфейс JNI надає доступ не до всього інтерфейсу прикладного програмування конкретної операційної системи, а тільки до деяких його частин. Вперше JNI використовувався в Java версії 1.1 та був розвинений в Java 2.
Застарілий інтерфейс
NMI (Native Method Invocation) був першим механізмом, специфікованим Sun для вклику з Java коду на C, і єдиним механізмом, що підримувався в JDK 1.0.2. В усіх наступних версіях Java NMI більше не підтримується: його замінює частково з ним сумісний JNI.
Див. також
- Platform Invocation Services (P/Invoke) — аналог JNI в середовищі .NET Framework
- Java Native Access — бібліотека для більш зручного доступу до нативного коду Java.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Java Native Interface JNI standartnij mehanizm dlya zapusku kodu pid upravlinnyam virtualnoyi mashini Java JVM yakij napisanij na movah S S chi Assembler ta skomponovanij u viglyadi dinamichnih bibliotek dozvolyaye ne vikoristovuvati statichne zv yazuvannya Ce daye mozhlivist viklikati funkciyi S S z programi na Java i navpaki Bilsh ranni interfejsi na vidminu vid JNI ne vlashtovuyut umovi binarnoyi sumisnosti PriznachennyaOsnovnoyu perevagoyu JNI pered poperednoyu versiyeyu JDK 1 0 NMI Native Method Invocation ta inshimi shozhimi interfejsami Netscape Java Runtime Interface chi Microsoft s Raw Native Interface and COM Java Interface ye te sho JNI pochatkovo rozroblyavsya dlya zabezpechennya binarnoyi sumisnosti dlya sumisnosti dodatkiv napisanih z vikoristannyam JNI dlya bud yakih virtualnih mashin Java na konkretnij platformi Same tomu skompilovanij S S kod maye vikonuvatisya Java mashinami napriklad v riznih brauzerah seredovishah rozrobki podibnih Symantec Visual Cafe ta Sun Java Workshop dlya konkretnoyi platformi Win32 v danomu vipadku Bilsh ranni interfejsi ne zadovolnyayut umovi binarnoyi sumisnosti Za dopomogoyu cogo mehanizmu bajt kod Java mozhe vzayemodiyati z sistemnim abo prikladnim platformenno oriyentirovanim kodom zapushenim pid upravlinnyam riznih operacijnih sistem Napriklad do ryadu sistemnih viklikiv prikladnogo interfejsu programuvannya Windows Windows API Mac OS API chi GNU Linux Platformenno nezalezhnij interfejs JNI nadaye dostup ne do vsogo interfejsu prikladnogo programuvannya konkretnoyi operacijnoyi sistemi a tilki do deyakih jogo chastin Vpershe JNI vikoristovuvavsya v Java versiyi 1 1 ta buv rozvinenij v Java 2 Zastarilij interfejsNMI Native Method Invocation buv pershim mehanizmom specifikovanim Sun dlya vkliku z Java kodu na C i yedinim mehanizmom sho pidrimuvavsya v JDK 1 0 2 V usih nastupnih versiyah Java NMI bilshe ne pidtrimuyetsya jogo zaminyuye chastkovo z nim sumisnij JNI Div takozhPlatform Invocation Services P Invoke analog JNI v seredovishi NET Framework Java Native Access biblioteka dlya bilsh zruchnogo dostupu do nativnogo kodu Java