このページでは、JNIの簡単な使い方(Hello Worldを表示するプログラム)を紹介しています。
このページでは、 JNI(Java Native Interface)の簡単な使い方を紹介するため、 Hello World(簡単なアプリケーションのサンプル)を作成する情報を掲載しています。
以下の環境で動作確認をおこないました。
$ vi NativeClass.java
public class NativeClass {
public native void nativeMethod();
}
$ export PATH=$PATH:/usr/java/jdk1.7.0_40/bin $ javac *.java $ ls NativeClass.class NativeClass.java
$ javah -jni NativeClass $ ls NativeClass.class NativeClass.h NativeClass.java
NativeClass.hの中身は次のようになります。
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class NativeClass */
#ifndef _Included_NativeClass
#define _Included_NativeClass
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: NativeClass
* Method: nativeMethod
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_NativeClass_nativeMethod
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
$ vi NativeClass.java
#include <stdio.h>
#include "NativeClass.h"
JNIEXPORT void JNICALL Java_NativeClass_nativeMethod (JNIEnv* env, jobject thisObj) {
printf("Hello World!!\n");
}
$ gcc -I/usr/java/jdk1.7.0_40/include -I/usr/java/jdk1.7.0_40/include/linux -shared -o libNative.so Native.c $ ls libNative.so Native.c NativeClass.class NativeClass.h NativeClass.java
$ vi Hello.java
public class Hello {
public static void main(String[] args) {
System.loadLibrary("Native");
NativeClass nativeClass = new NativeClass();
nativeClass.nativeMethod();
}
}
$ javac Hello.java $ ls Hello.class Hello.java libNative.so Native.c NativeClass.class NativeClass.h NativeClass.java
soファイルが見つかるようにパスを環境変数に追加します。
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<libNative.soが置かれているディレクトリのパス>
実行します。
$ java Hello Hello World!!
※「cannot restore segment prot after reloc: Permission denied」などと実行時にエラーが発生する場合は、SELinuxの設定を行います。
# su # chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t libNative.so # exit
スポンサーリンク
サイト内のページ
言語
C・C++
/HTML
/Java
/JavaScript
/PHP
/シェルスクリプト
開発環境
Ant
/Burp
/Eclipse
/Fiddler
/gcc
/gdb
/Git
/g++
/JDK
/JMeter
/JUnit
/Teraterm
/ZAP
技術・仕様
Ajax
/CORBA
/Jakarta EE(旧称J2EE、Java EE)
/JNI
ライブラリ/Framework/CMS
bootstrap
/jQuery
/FuelPHP
/Lucene
/MyBatis
/Seasar2
/Spring
/Struts
/WordPress
Web API
Google Maps
ITインフラOSとミドルウェア
Linux
/Windows
/シェル
ActiveMQ
/Tomcat
/MariaDB
/MySQL
/Nagios
/Redis
/Solr
ITインフラセキュリティ
公開サーバーのセキュリティ
SI
ホームページの作り方
スポンサーリンク
関連サイト内検索ツール
zealseedsおよび関連サイト内のページが検索できます。
IPアドレス確認ツール
あなたのグローバルIPアドレスは以下です。
3.15.3.17
HTMLの表示色確認ツール
パスワード生成ツール
文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。
ここに生成されます。
スポンサーリンク
Copyright (C) 2007-2024 zealseeds. All Rights Reserved. Loarding…