Next: 5.3 Makefile
Up: 5 ネイティブ言語の呼び出し
Previous: 5.1 Cプログラム
C言語のプログラムをロードするJavaプログラムは
以下のようになる.
static { ... }
は,staticブロック というもので,
クラスがロードされた時に実行されるブロックである.
Linuxでは,Helloを指定すると,
libHello.soというファイルをロードする.
// Hello.java:
import java.lang.*;
import java.io.*;
public class Hello{
static{
System.loadLibrary("Hello");
}
public Hello(){
}
public native void greeting();
public static void main(String args[]){
Hello h = new Hello();
h.greeting();
}
}
javahで生成されるプログラムは以下のようになる.
/* DO NOT EDIT THIS FILE -
it is machine generated */
#include <jni.h>
/* Header for class Hello */
#ifndef _Included_Hello
#define _Included_Hello
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Hello
* Method: greeting
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_Hello_greeting
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
generated through LaTeX2HTML. M.Inaba 平成18年5月7日