Invoking the Java Virtual Machine

 �� �忡���� native ���α׷���, JVM�� �����Ű�� ����� ���ؼ� �����Ѵ�. �̰��� ������ ����� ���ϰ� �ִ�. ���� ���, Java ���ø��� �����ϴ� �� �������� �����Ѵٰ� �������� ��, JVM�� ������Ѽ� ������ �� �ִ�.

Invoking the Java Virtual Machine

 �� �κп����� JVM�� native ���̺귯���κ��� native ���α׷����� �ε��ϴ� ����� ���ؼ� �����Ѵ�. JVM�� �ʱ�ȭ�ؼ� Java �޼ҵ带 ȣ���ϴ� ����� ���ؼ��� �����ȴ�. Invocation API�� ���ؼ�, native �����带 �����ϰ� �ִ� JVM�� �ٿ��� ��ü������ Java ������� �����ϰ� �� �� �ִ�. ���� �� ����� Win32������ �����ǰ� �ִ�.

Invoking the Java Virtual Machine

 JNI�� �̿��ؼ�, native�� ���� ���̺귯���� native ���α׷��� ������Ѽ� �ű⿡ JVM�� �����ų �� �ִ�.

 JNI�� Invocation  API�� �����ϴµ�, �̰�����, ��java�� ���������͸� ������� �ʰ�, C���� �ٷ� Java ���α׷��� ������ �� �ֵ��� �� �� �ִ�.

Invoking the Java Virtual Machine

 �� ������ �����ϱ� ���� ������ ������ ������ �Ѵ�.

 ���� Java ���α׷��� ���� C ���α׷��� �����ϰ� �� JVM�� ���� ������ �� ���̴�.

JNI_GetDefaultJavaVMInitArgs() �Լ��� �̿��ؼ�, JVM�� �ʱ�ȭ�ϱ� ���� ���ڵ��� ���� �Ѵ�. �׷� ��, JNI_CreateJavaVM() �� �̿��ؼ� VM�� �ε��ϰ� �ʱ�ȭ�Ѵ�. �� �Լ��� ������ ���� ���ڸ� �ʿ�� �Ѵ�.

 JVM�� �����Ű�� �Ͱ� native �޼ҵ带 �����ϴ� �Ͱ��� �����ϴ�. �׷�����, ���̰� ���� ���̶�� ���� ������ �������� �ʴ� ���̴�. �׷��Ƿ�, ���� ���۷����������� DestroyJavaVM() �� ����DZ� ���������� �������� �ʴ´�. VM�� �ε�� ��, �Ϲ����� JNI �Լ��� ȣ���ؼ� Java ���α׷��� �����ؼ� ������ �� ��, ����������, DestroyJavaVM() ���� VM�� �����Ѵ�.
 �������� ������ ���� ������� �� �� �ִ�. ���� Solaris�� ���,

 Win32�� VC++ 4.0�� ��쿡��

 Attaching Native Threads

 native �����带 JVM�� ���� �� �ִ�. ����� Win32ȯ�濡���� ������ �ǰ�, �����δ� Solaris���� �������� ������ ���δ�.

 ���� ������ Win32���̸�, �տ��� ����ߴ� ������ ������� ���̱� ���ؼ� ������ ������ ���̴�.

 ũ�� �޶��� ������ ����. ����, �����带 ����ϱ� ���ؼ� Win32���� �����ϴ� �޼ҵ带 ����ؼ� �����带 ����������, ������ ���� �ȿ�, AttachCurrentThread() �� ȣ���ϴ� �Ϳ� ���ؼ� ���� ���� ���� �Ѵ�. �̰��� ������ν� �ٵ��� ���ִ� ���̸�, ����° ���ڴ� ������ �Ǿ� �־, NULL�� ������ ���ָ� �ȴ�.

 DetachCurrentThread() �� ȣ���ϰ� �Ǹ� ���� �����忡 �ҼӵǾ� �ִ� ��� ���� ���۷����� �����ϰ� �ȴ�.

Limitation of the Invocation API in JDK1.1

 �� ���� JNI�� invocation API�� ���� ���� ������ �����Ѵ�.