// Base java source
// HelloWorld.java
//
import java.io.*;
public class HelloWorld
{
public native void printMsg(); // native
void init()
{
System.loadLibrary("HelloWorld");
}
public static void main (String args[])
{
HelloWorld hello = new HelloWorld();
hello.init();
hello.printMsg();
}
}
// -----------------------------------------------------------
// Compile
// -----------------------------------------------------------
javac HelloWorld.java // compile java
javah -jni HelloWorld // create header file for cpp
// -----------------------------------------------------------
// result javah
// -----------------------------------------------------------
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloWorld
* Method: printMsg
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_printMsg
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
// -----------------------------------------------------------
// CPP FILE
// -----------------------------------------------------------
#include "HelloWorld.h"
#include <iostream>
/*
* Class: HelloWorld
* Method: printMsg
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_printMsg (JNIEnv *env, jobject me)
{
std::cout << "Hello world (JNI)" << std::endl;
}
// -----------------------------------------------------------
// SETTING
// -----------------------------------------------------------
cd ~
vi .bashrc
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
export LD_LIBRARY_PATH=/home/kurome/jnipath # LIBRARY PATH WITH *.so
// -----------------------------------------------------------
// COMPILE CPP
// -----------------------------------------------------------
// linux
g++ -shared -I$JAVA_HOME/include -I$JAVA_HOME/include/linux HelloWorld.c -o libHelloWorld.so
// -----------------------------------------------------------
// RUN
// -----------------------------------------------------------
java HelloWorld
// HelloWorld.java
//
import java.io.*;
public class HelloWorld
{
public native void printMsg(); // native
void init()
{
System.loadLibrary("HelloWorld");
}
public static void main (String args[])
{
HelloWorld hello = new HelloWorld();
hello.init();
hello.printMsg();
}
}
// -----------------------------------------------------------
// Compile
// -----------------------------------------------------------
javac HelloWorld.java // compile java
javah -jni HelloWorld // create header file for cpp
// -----------------------------------------------------------
// result javah
// -----------------------------------------------------------
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloWorld
* Method: printMsg
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_printMsg
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
// -----------------------------------------------------------
// CPP FILE
// -----------------------------------------------------------
#include "HelloWorld.h"
#include <iostream>
/*
* Class: HelloWorld
* Method: printMsg
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_printMsg (JNIEnv *env, jobject me)
{
std::cout << "Hello world (JNI)" << std::endl;
}
// -----------------------------------------------------------
// SETTING
// -----------------------------------------------------------
cd ~
vi .bashrc
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
export LD_LIBRARY_PATH=/home/kurome/jnipath # LIBRARY PATH WITH *.so
// -----------------------------------------------------------
// COMPILE CPP
// -----------------------------------------------------------
// linux
g++ -shared -I$JAVA_HOME/include -I$JAVA_HOME/include/linux HelloWorld.c -o libHelloWorld.so
// -----------------------------------------------------------
// RUN
// -----------------------------------------------------------
java HelloWorld
'JAVA' 카테고리의 다른 글
setup tomcat (0) | 2013.09.26 |
---|---|
links (0) | 2013.09.26 |
jni interface (0) | 2013.09.26 |
jdk 1.6 + eclise 3.4 (0) | 2013.09.26 |
byteToString (0) | 2013.09.26 |