第4章 JNI(Java Native Interface)

目次

4.1. JNIの開発環境
4.1.1. JDK(Mac OS X)
4.2. ビルド
4.2.1. javah
4.2.2. JNIバイナリのビルド
4.3. ハローワールド (JNI) の続き
4.4. 型の対応
4.4.1. JNI引数の例

注記

JNIではC言語のコンパイル・ビルドが必要となります。ビルドについては「付録:make」(付録C Makeツール)を参照ください。

重要

JNIを使う場合は、Javaバインディングは不要となります。OpenCLソースコードをビルドして、ライブラリをJNI経由でアクセスできるので、本書の残り部分は不要となります。C言語、C++でのビルドについては「OpenCL入門」を参照ください。

Java Native Interface(JNI)はJavaから、C/C++でコードされた実行可能ライブラリ内の関数等を呼び出すことを可能とするインターフェースです。JNIの定義はより広義ですが、この本ではJNIをC/C++を連携するためのAPIと考えて頂ければ結構です。

JNIを経由すれば、OpenCLライブラリ(フレームワーク)で記述した関数を呼び出せるので、バインディングを使わなくても開発者が直接JNI経由でOpenCLライブラリと連携が可能となります。

実はOpenCLのJavaバインディングのほぼ全てがこのJNIを経由しており、本書で解説するJOCLも例外ではありません。

Copyright 2018-2019, by Masaki Komatsu