JNI������ �����ϴ� ����� ȣ���ϴ� ����� ���ؼ� ǥ���� ������ ���� �ִ�. ������� �̷��� ����� ���ؼ� ������ �ϰ� �ȴ�. �� Ÿ���� �����ϴ� ����� ���ؼ��� ������ �Ѵ�.
Java �ʿ����� native Ű���带 ����ؼ� native �ڵ带 ����ϰڴٴ� ���� �˸���, native ����ʿ����� ������ ������ �ϰ� �Ǵµ�, �� �� ���̿� ���踦 �� �� �ִ� �ڵ� ����� �̿��ؾ� �Ѵ�. javah�� �� ����� ������ ������Ÿ���� ���������ְ� �ȴ�.
JNI�� Java�� Ÿ�� native ����� Ÿ���� ������ �� �ִ� Ÿ���� �����Ѵ�. �� �忡���� �Ϲ����� int�� double�� ���� primitive Ÿ���� �����ϴ� ����Ӹ� �ƴ϶� Java ��ü�� ������ �� �ִ� ����� ���ؼ� �����Ѵ�.
������� Java������ native �ҵ��� ���� ����� C/C++ �Լ� ������Ÿ���� ������Ű�� ����� ���ؼ� �����Ѵ�.
������ ���� Java �ҽ��� ������ ����.
class Prompt {
private native String getLine(String
prompt);
public static void main(String args[]) {
Prompt p = new Prompt();
String input = p.getLine("Type
a line: ");
System.out.println("User typed:
" + input);
}
static {
System.loadLibrary("MyImpOfPrompt");
}
}
native �ҵ�� getLine() �̴�. native �ҵ带 �����ϴ� ����� ������ ����.
�������ϴ� ����� ��������� ������Ű�� ����� ���ؼ� �̹� �տ��� ������ �Ǿ���. javah�� ������ ���� ������ ����� ������Ÿ���� ������ ����.
JNIEXPORT jstring JNICALL Java_Prompt_getLine(JNIEnv *, jobject, jstring)
�����ϴ� ����� ���ؼ��� �տ��� �̹� ������ �Ǿ���, JNIEXPORT�� JNICALL�� �÷����� ���� Ű�����̴�.
����� �����Ǵ� ������ native �ڵ忡�� ���� ���۷��� Java Ÿ���̴�. �� Ÿ���� ������ ���� �뵵�� ����ϱ� ���ؼ� �ʿ��ϴ�.
Java primitive Ÿ�� �̿� �����Ǵ� native Ÿ���� ���� ǥ�� ����.
Java Type |
Native Type |
Size in bits |
boolean |
jboolean |
8, unsigned |
byte |
jbyte |
8 |
char |
jchar |
16, unsigned |
short |
jshort |
16 |
int |
jint |
32 |
long |
jlong |
64 |
float |
jfloat |
32 |
double |
jdouble |
64 |
void |
void |
n/a |
Java ��ü�� ���۷����� �Ѱ�����. ���������� �μ��� �Ѱ����� ��ü�� jobject�� ����Ŭ������ �ȴ�. ���� ���� �� ������ ��Ÿ���� ���̴�.
���� �������� ���������� getLine() �Լ��� ��� ������ �Ǵ����� ��Ÿ����.