🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.lang.java
Article #22086

Java���˼��--��¼A ʹ�÷�JAVA����

#22086
From: �˺�2��
Date: Tue, 28 Oct 2003 01:50
505 lines
61551 bytes
JAVA���Լ����׼API��Ӧ�ó����̽ӿڣ�Ӧ��Ӧ�ó���ı�д�Ѵ´����ࡣ����ijЩ
����£����DZ���ʹ�÷�JAVA���롣���磬������ʱҪ���ʲ���ϵͳ��ר�����ԣ�����
���Ӳ���豸�򽻵����ظ�ʹ�����еķ�Java�ӿڣ�����Ҫʹ�á���ʱ�����С��Ĵ���
�Σ��ȵȡ����Java����Ĺ�ͨҪ���ñ������͡�������ר��֧�֣����踽�ӵ�
���߽�Java����ӳ��ɷ�Java���루Ҳ��һ���򵥷������ڵ�15�µġ�һ��WebӦ�á�С
���У��и����ӽ�����������ñ�׼�������ͬ��Java�������ӣ���Ŀǰ����ͬ�Ŀ���
��Ϊ�����ṩ�˲�ͬ�ķ�����Java 1.1�С�Java���нӿڡ���Java Native Interface��
JNI������������Լ��ġ�Java�����ڽӿڡ���Java Runtime Interface���ƻ�����΢
���ṩ��J/Direct������Դ�ӿڡ���Raw Native Interface��RNI���Լ�Java/COM���ɷ�
����
���������������������ֵIJ�̬ͬ�ȶԳ���Ա�Ƿdz�����ġ���JavaӦ�ñ�����ù�
�з����������Ա����Ҫʵ�ֹ��з����IJ�ͬ�汾����������Ӧ�ó������е�ƽ̨����
������ԱҲ��ʵ����Ҫ��ͬ�汾��Java���룬�Լ���ͬ��Java�����
��һ��������CORBA��ͨ�ö����������ṹ����������OMG����������飬һ�ҷ�Ӯ��
�ԵĹ�˾Э�ᣩ������һ�ּ��ɼ�����CORBA�����κ����Ե�һ���֣�ֻ��ʵ��ͨ��ͨ��
���߼������һ�ֹ淶������������ɲ�ͬ����ʵ�ֵĶ���֮��ʵ�֡��໥����������
��������ͨ�����ߵ����ֽ���ORB������������?������������ʵ�ֵ�һ�ֲ�Ʒ��
����������Java���Թ淶��һ���֡�
����¼����JNI��J/DIRECT��RNI��JAVA/COM���ɺ�CORBA���и������������������ε�
̽�֣�������ʱ���ٶ������Ѷ���صĸ���ͼ�������һ���̶ȵ���ʶ��������󣬴�
��Ӧ���ܹ����бȽϲ�ͬ�ķ�����������Լ�Ҫ�����������ѡ����ǡ����һ�֡�
A.1 Java���нӿ�
JNI��һ�ְ��ݼ���ı�̽ӿڣ��������Ǵ�JavaӦ�ó�������ù��з�����������Jav
a 1.1�������ģ�ά������Java 1.0����Ӧ���ԡ��������з����ӿڡ���NMI������ij��
�̶ȵļ��ݡ�NMI�����һЩ�ص�ʹ��δ������������֧�֡����ǵ����ԭ��Java��
�Խ����İ汾���ܲ����ṩ��NMI��֧�֣����Ҳ��׼��������
Ŀǰ��JNIֻ������C��C++д�ɵĹ��з����򽻵�������JNI�����ǵĹ��з������ԣ�
����������鼰����Java���󣨰���������ִ���
������Java����
�����Ͷ����쳣��
��װ���ಢ��ȡ����Ϣ
���������������ͼ��
���ԣ�ԭ����Java���ܶ��༰�������ļ������������ڹ��з�����ͬ�����������
A.1.1 ���ù��з���
�����ȴ�һ���򵥵����ӿ�ʼ��һ��Java������ù��з����������ٵ���Win32��API��
��MessageBox()����ʾ��һ��ͼ�λ����ı�����������Ժ�Ҳ����J/Directһ־ʹ��
�������ƽ̨����Win32��ֻ�轫�����������ݵ�Cͷ��
#include <windows.h>
�滻�ɣ�
#include <stdio.h>
������MessageBox()�ĵ��û��ɵ���printf()���ɡ�
��һ����д���Թ��з���������Ա�������������Java���룺
999ҳ����
�ڹ��з��������ĺ��棬������һ��static����飬������System.loadLibrary()��
�����κ�ʱ���������������ǡ���� System.loadLibrary()��һ��DLL�����ڴ棬
������ͬ������ӡ�DLL����λ�����ϵͳ·���������ڰ���Java���ļ���Ŀ¼�С���
�ݾ����ƽ̨��JVM���Զ�����ʵ����ļ���չ��
1. Cͷ�ļ��������javah
���ڱ������JavaԴ�ļ������Ա��������.class�ļ�����javah��javah����1.0������
���ģ�����������Ҫʹ��Java 1.1 JNI�����Ա���ָ��-jni����
javah -jni ShowMsgBox
javah��������ļ�����Ϊÿ�����з���������C��C++ͷ�ļ������һ������ԭ�͡�����
��������ShowMsgBox.hԴ�ļ���Ϊ��ϱ����Ҫ����΢������һ���޸ģ���
1000ҳ����
�ӡ�#ifdef_cplusplus�����Ԥ������������Կ��������ļ��ȿ���C���������룬��
����C++���������롣��һ��#include�������jni.h����һ��ͷ�ļ�������֮һ�Ƕ���
���ļ����ಿ���õ������ͣ�JNIEXPORT��JNICALL��һЩ�꣬���ǽ������ʵ������䣬
�Ա�����Щ��ͬƽ̨ר�õ���������ϣ�JNIEnv��jobject�Լ�jstring����JNI�����
�Ͷ��塣
2. ��ƹ���ͺ���ǩ��
JNIͳһ�˹��з��������������һ���Ƿdz���Ҫ�ģ���Ϊ�����������Java������
���з������������Ļ��Ƶ�һ���֡��Ӹ���˵�����й��з�����Ҫ��һ����Java����
ͷ���������Java���������֣��»����ַ�����Ϊ�ָ���ʹ�á���Java���з���������
�����������ظ�������ôҲ�Ѻ���ǩ��׷�ӵ����ֺ��档��ԭ��ǰ���ע�����ҿ�
�������е�ǩ�����˽��������͹��з���ǩ�����ϸ���������ο���Ӧ��JNI�ĵ�
��
3. ʵ���Լ���DLL
��ʱ������Ҫ����ȫ���������дһ��C��C++Դ�ļ��������а���javah��ɵ�ͷ�ļ�
����ʵ�ֹ��з�����Ȼ����������һ����̬���ӿ⡣��һ���ֵĹ�������ƽ̨�й�
�ģ������Ҽٶ������Ѿ�֪����δ���һ��DLL��ͨ�����һ��Win32 API������Ĵ���
ʵ���˹��з������������������ӵ�һ����ΪMsgImpl.dll���ļ��
1001ҳ����
����Win32û����Ȥ��ֻ�����MessageBox()���ã�����Ȥ�IJ���������Χ�Ĵ��롣����
�����з����ڲ����Ա����Ƿ���Java�Ĵ��š���һ���Ա���������JNIEnv�ģ����а�
�˻ص�JVM��Ҫ�����йҹ�����һ������ϸ�����������ڷ��������Ͳ�ͬ���ڶ����Ա���
Ҳ���Լ���ͬ�ĺ��塣��������������ķ�static������Ҳ����ʵ������ڶ�����
�����ȼ���C++�ġ�this��ָ�룬��������Java�ġ�this�����������˵��ù��з�������
�����󡣶���static���������Ƕ��ض�Class�����һ�����ã������������Ǹ�Class��
����ʵ�ֵġ�
ʣ����Ա�����?�ݵ����з����������Java����������Ҳ����������ʽ���ݵģ�
�����ǽ��еġ���ֵ�����ݡ�
�ں����С�������׼��������δ�һ�����з������ڲ����ʺͿ���JVM��ͬʱ������
������и��꾡�Ľ��͡�
A.1.2 ����JNI����JNIEnv�Ա���
����JNI�������Ա�ɴ�һ�����з������ڲ���JVM�򽻵�����������ǰ���������
����������ÿ��JNI���з����������һ��������Ա�����Ϊ�Լ��ĵ�һ������JNI
Env�Ա�����������ָ������ΪJNIEnv_��һ������JNI��ݽṹ��ָ�롣JNI��ݽṹ��
һ��Ԫ����ָ����JVM��ɵ�һ�������ָ�룻�������ÿ��Ԫ�ض���ָ��һ��JNI����
��ָ�롣�ɴӹ��з������ڲ�������JNI����ĵ��ã������dz������Щָ������ã���
��IJ���ʵ�ʺܼ򵥣���ÿ��JVM�����Լ��ķ�ʽʵ����JNI�������ǵĵ�ַ�϶�λ
��Ԥ�ȶ���õ�ƫ�ƴ���
����JNIEnv�Ա���������Ա�ɷ���һϵ�к�����Щ����ɻ���Ϊ�������
����ȡ�汾��Ϣ
��������Ͷ������
�����ƶ�Java�����ȫ�ֺ;ֲ�����
������ʵ���ֶκ;�̬�ֶ�
������ʵ��;�̬����
��ִ���ִ����������
������Ϳ���Java�쳣
JNI����������൱�࣬���ﲻ���������෴���һ����ҽ�ʾʹ����Щ����ʱ�����һ
Щ��ԭ�?���˽����ϸ�������������Լ����ñ�������JNI�ĵ���
���۲�һ��jni.hͷ�ļ����ͻᷢ����#ifdef _cplusplusԤ�������������ڲ�������C+
+����������ʱ��JNIEnv_�ṹ�������һ���ࡣ�������˴�����Ƕ����ͨ��һ��
�򵥶�����Ϥ���﷨����Щ���������ǿ��Դ��ݷ���JNI�������磬ǰ�����������
�д��룺
(*jEnv)->ReleaseStringUTFChars(jEnv, jMsg,msg);
����C++��ɸ�д������������ӣ�
jEnv->ReleaseStringUTFChars(jMsg,msg);
��ҿ�ע�⵽�Լ�������Ҫͬʱ�����jEnv���������ã���ͬ��ָ�벻����Ϊ��һ����
��ݸ�JNI������á�����Щ����ʣ�µĵط����һ�ʹ��C++���Ĵ��롣
1. ����Java�ִ�
��Ϊ����JNI�����һ�����ӣ���˼�������Ĵ��롣�������������JNIEnv���Ա���j
Env������һ��Java�ִ���Java�ִ���ȡ���� Unicode��ʽ�����Լ����յ�����һ���ִ�
����������һ����Unicode������printf()�������ȱ�����JNI���� GetStringUT
FChars()����ת����ASCII�ַ�ú����ܽ���һ��Java�ִ���Ȼ�����ת����UTF-8��
����8λ������� ASCIIֵ������16λ�������Unicode����ԭʼ�ִ���������ȫ��AS
CII���ɣ���ô����ִ�Ҳ��ASCII����
GetStringUTFChars��JNIEnv���ָ����Ǹ��ṹ���һ���ֶΣ�������ֶ�����ָ��һ
�������ָ�롣Ϊ����JNI���������ô�ͳ��C�﷨������һ������ͨ��ָ�룩����
��������ʽ��ʵ�ֶ�����JNI����ķ��ʡ�
A.1.3 ���ݺ�ʹ��Java����
��ǰ���У����ǽ�һ���ִ����ݸ���з�������ʵ�ϣ���ɽ��Լ�������Java���󴫵�
��������
�����ǵĹ��з����ڲ����ɷ������յ�����Щ������ֶμ�������
Ϊ���ݶ����������з���ʱҪ����ԭʼ��Java�﷨����������ʾ��MyJavaClass��һ��
public���������ֶΣ��Լ�һ��public������ UseObjects��������һ�����з���������
����MyJavaClass���һ������Ϊ������з����Ƿ��ܿ����Լ����Ա���������������
�Ա����� public�ֶΣ����ù��з�����Ȼ���ӡ��public�ֶε�ֵ��
1004ҳ�ϳ���
����ô��룬����.class�ļ����ݸ�javah�󣬾Ϳ���ʵ�ֹ��з��������������������
��һ��ȡ���ֶκͷ���ID���ͻ�ͨ��JNI����������ǡ�
1004-1005ҳ����
���һ���Ա����⣬C++��������һ��jobject������Java�������á����С�����һ
�桪���Ǹ����������Ǵ�Java�����ﴫ�ݵġ����Ǽ򵥵ض�ȡaValue�������ӡ������
�ı����ֵ�����ö����divByTwo()�������ٽ�ֵ���´�ӡһ�顣
Ϊ����һ���ֶλ򷽷������ȱ����ȡ��ı�ʶ�������ʵ���JNI����ɷ����ȡ��
�����Ԫ�����Լ�ǩ����Ϣ����Щ����᷵��һ����ʶ��������ɷ��ʶ�Ӧ��Ԫ��
��������һ��ʽ�Ե���Щ���ۣ������ǵĹ��з���ȷʵ��Java������ڲ�����һ����֪
����ˣ������ͨ����JVM���ص���������ֶκͷ���������һ������ͬ��JVM�Ϳ�ʵ��
��ͬ���ڲ����󲼾֣�ͬʱ����Թ��з������Ӱ�졣
������Java���򣬾ͻᷢ�ִ�Java��һ�ഫ���Ķ����������ǵĹ��з�������ġ�����
�ݵĵ�����ʲô�أ���ָ�룬����Java���ã����������ռ����ڹ��з��������ڼ�����
��ʲô�أ�
�����ռ������ڹ��з���ִ���ڼ�������У�����һ�ι��з��������ڼ䣬���ǵĶ���
�ɱ�֤���ᱻ�����������ռ�ȥ��Ϊȷ����һ�㣬���ȴ����ˡ��ֲ����á������ڹ�
�з�������֮����������������ǵġ������ڡ�����ù��ϢϢ��أ������ܹ���֤
�����ڹ��з��������ڼ����Ч�ԡ�
������Щ���û���ÿ�κ�����õ�ʱ�򴴽����ƻ������Բ�����static��������������
�����ľֲ����������ؿ���������ϣ��һ�������ں�������ڼ������Ч������Ҫһ��
ȫ�����á�ȫ�����ò�����JVM�����ģ���ͨ������ض���JNI�������Ա�ɽ��ֲ���
����չΪȫ�����á�����һ��ȫ������ʱ��������ö���ġ����ʱ�䡱����ȫ����
�ã��Լ������õĶ��󣩻�һֱ�����ڴ��ֱ�����ض���JNI������ȷ�ͷ����������
����������C��malloc()�� free()��
A.1.4 JNI��Java�쳣
����JNI���ɶ���׽����ӡ�Լ����¶���Java�쳣��������һ��Java����������
�Գ���Ա��˵�������е���ר�õ�JNI�����Ա���쳣���д��?�����г������쳣��
���һЩJNI����
��Throw()������һ�����е��쳣�����ڹ��з������������¶���һ���쳣��
��ThrowNew()�����һ���µ��쳣���󣬲����䶪��
��ExceptionOccurred()���ж�һ���쳣�Ƿ��ѱ�������δ���
��ExceptionDescribe()����ӡһ���쳣�Ͷ�ջ������Ϣ��
��ExceptionClear()�����һ��������쳣��
��FatalError()�����һ�����ش��󣬲����ء�
��������Щ�����У���ܺ��ӵľ���ExceptionOccurred()��ExceptionClear()�����
��JNI�����ܲ����쳣������û������Java��try���ڵ������������Կɹ����á�����
��ÿһ��JNI�������֮�󣬶��������ExceptionOccurred()���˽��쳣�Ƿ��ѱ�����
������⵽һ���쳣����ѡ�������Կ��ƣ�����ʱ��Ҫ���¶�����Ȼ�����ȷ
���쳣���ձ������������Լ��ĺ������� ExceptionClear()��ʵ�֣����쳣������
����Ҳ����������ijЩ�����н��С���������Σ���һ�����DZز����ٵġ�
���DZ��뱣֤�쳣�����������򣬼�����һ���쳣���������µ���һ��JNI����
��õĽ���������޷�Ԥ֪�ġ�Ҳ�������JNI��������쳣ʱ��ȫ���ã���Ȼ������
����ר�ŵ��쳣���ƺ���
A.1.5 JNI���̴߳���
����Java��һ�ֶ��߳����ԣ������߳̿���ͬʱ������һ�����з����ĵ��ã�����һ��
�̷߳������ã����з��������������ڼ���ͣ������ʱ����ȫҪ�ɳ���Ա����֤���е�
���ڶ��̵߳Ļ����а�ȫ���С����磬Ҫ������һ��δ���м��ӵķ����޸Ĺ�����ݡ�
��ʱ��������Ҫ������ѡ�񣺽����з�������Ϊ��ͬ���������ڹ��з����ڲ���ȡ����
ijЩ���ԣ�ȷ����ݴ�����ȷ�ز������С�
���⣬��Բ�Ҫͨ���̴߳���JNIEnv����Ϊ��ָ����ڲ��ṹ���ڡ�ÿ�̡߳��Ļ���
����ģ����Ұ���ֻ����Щ�ض����̲߳����������Ϣ��
A.1.6 ʹ���ֳɴ���
Ϊʵ��JNI���з�������򵥵ķ���������һ��Java�����д���з�����ԭ�ͣ������Ǹ�
�࣬��ͨ��javah����.class�ļ�����������������һ�����͵ġ����Ѵ��ڵĴ���⣬��
�����Java��������ǣ���ʱ�ָ�����Ǻ��أ����ɽ�DLL�е����к������ʹ����
JNI����������ַ����Dz����еġ���õķ�������ԭ���Ĵ���⡰���桱дһ����װ
DLL��Java����������DLL��ĺ�������ٵ���ԭʼ��DLL��������������ǽ�����
һ�ֽ�����������������£�����������������������Ϊ��������������õ���JNI��
������޷�ʹ�����ǡ�
A.2 ΢��Ľ������
���������ʱΪֹ��΢����δ�ṩ��JNI��֧�֣�ֻ�����Լ���ר���ṩ�˶Է�Jav
a������õ�֧�֡���һ֧���ڽ���������Microsoft JVM�Լ��ⲿ�����С�ֻ�г�����
Microsoft Java���������룬����ֻ����Microsoft Java�����JVM�������е�ʱ��
���ڽ��������ԲŻ���Ч�����ƻ����������Ϸ����Լ���Ӧ�ã����߱���λ��������
���ڲ�ͬƽ̨�Ļ��ϣ��Ϳ��ܳ�Ϊһ�����ص����⡣
΢����Win32����Ľӿ�Ϊ�����ṩ������Win32������;����
(1) J/Direct���������Win32 DLL�����һ��;��������ijЩ���ơ�
(2) ��ԭ�ӿڣ�RNI�����ɵ���Win32 DLL����������н���������ռ������⡣
(3) Java/COM���ɣ��ɴ�Java��ֱ�ӽ�ʾ�����COM����
�����С�ڽ��ֱ�̽�������ּ�����
д�������ʱ����Щ���Ծ�ͨ����Microsoft SDK for Java 2.0 beta 2��֧�֡��ɴ�
΢�?˾��Webվ�������������ƽ̨��Ҫ����һ��ʹ���ѡ���̣����ǽ�����Activ
e Setup������Java SDK��һ�������й��ߵļ��ϣ����������������Ƕ��Developer S
tudio�������Ա�������Visual J++ 1.1������Java 1.1���롣
A.3 J/Direct
J/Direct�ǵ���Win32 DLL������򵥵ķ�ʽ�������Ҫ���Ŀ������Win32API�򽻵���
����ȫ��������������κ�API�����ǣ�������һ���Էdz����㣬����ͬʱҲ�����ijЩ
���ƣ��ҽ��������ܣ���RNI��ȣ�����J/DirectҲ��һЩ���Ե��ŵ㡣���ȣ���ϣ���
�õ��Ǹ�DLL��Ĵ���֮�⣬û�б�Ҫ�ٱ�д����ķ� Java���룬����֮�����Dz���Ҫ
һ����װ�����ߴ��?���DLL����Σ������Ա������׼�������֮��ʵ�����Զ�ת��
�������봫���û��Զ����������ͣ���ôJ/Direct���ܲ������ǵ�ϣ����������
��������չʾ��������dz��򵥺�ֱ�ӡ�ֻ�������У�������ӱ��ܵ���Win32 AP
I����MessageBox()�����ܵ���һ��С��ģ̬���ڣ�������һ�����⡢һ����Ϣ��һ����
ѡ��ͼ���Լ�������ť��
1008ҳ����
�����𾪵��ǣ����������������J/Direct����Win32 DLL���������ȫ�����롣���е�
�ؼ���λ��ʾ������ײ���MessageBox()����֮ǰ��@dll.import�����������Ͽ�
��һ��ע�ͣ���ʵ�ʲ�����ˡ���������Ǹ��߱�����������������ĺ�������USER
32 DLL��ʵ�ֵģ�����Ӧ��Ӧ�ص��á�����Ҫ����ȫ����������ṩ��DLL��ʵ�ֵĺ���
����һ��ԭ�ͣ������ú�����������Java�汾���ֹ�������Ҫ��ÿһ��Win32 AP
I����һ��Microsoft Java����������������飨�ܿ�ͻ���ϸ���ͣ���Ϊ�������
����������������롰����ơ���DLL���������ǣ�Ҳ������@dll.import������
����˳�����ӡ��ٸ�������˵�����ǿ�ָ��������DLL������λ�á��Ժ󻹻���彲
��@dll.import����������ԡ�
�÷�Java����������ӵ�һ����Ҫ������Ǻ��������Զ����á������ҿ���������
��MessageBox()��Java���������������ִ��Ա�������ԭ����C���������������charָ
�롣����������������Զ�ת����׼������ͣ�ͬʱ���ձ��º�һ��Ҫ�����Ĺ���
��ã���һ�����ע�⵽��main()�����е�UnsatisfiedLinkError�쳣���������ڵ�ʱ
��һ�����ӳ����ܴӷ�Java�������������ţ��ͻᴥ����һ�쳣���¼��������
�����ɶ෽���ԭ����ɵģ�.dll�ļ�δ�ҵ�������һ����Ч��DLL������J/Directδ��
����ʹ�õ�������֧�֡�Ϊ��ʹDLL�ܱ��ҵ��������λ��Windows��Windows\System
Ŀ¼�£�λ����PATH���������г���һ��Ŀ¼�У�����λ�ں�.class�ļ���ͬ��Ŀ¼��
J/Direct�����Microsoft Java������1.02.4213�汾����߰汾��֧�֣�Ҳ�����Mic
rosoft JVM 4.79.2164����߰汾��֧�֡�Ϊ�˽��Լ��������İ汾�ţ�������������
����JVC����Ҫ���κβ���Ϊ�˽�JVM�İ汾�ţ����ҵ� msjava.dll��ͼ�꣬��������
����˵��۲�������ԡ�
A.3.1 @dll.import������
��Ϊʹ��J/DirectΨһ��;����@dll.import�������൱�����ṩ��Ϊ���ڶ����
�ķ���������Զ���ͬ��Java���뽨�����ӹ�ϵ�ķ�ʽ�������Ӧ�������ڵ�һЩ��
������Ӧ��������ࡣҲ����˵���������Ǹ��������������з�����������ͬ��DLL��ʵ
�ֵġ����������Ǿ����о�һ����Щ���ԡ�
1. ������Ͱ�˳������
Ϊ��ʹ@dll.import����������������ʾ����������DLL�ڵĺ�����밴���ֵ�����
Ȼ��������ʱ��ʹ����DLL��ԭʼ���ֲ�ͬ��һ�����֣������?��������Ϳ���
����ţ����簴˳�򣩵��������ǰ����ֵ����������������������FinestraDiMess
aggio()�����������˵�ġ�MessageBox�����������ҿ���������ʹ�õ��﷨�Ƿdz�
�򵥵ġ�
1010ҳ�ϳ���
�����������չʾ�����ͬDLL�ﲢ�ǰ����ֵ�����һ�����������ӣ��Ǹ�������ʵ��
��������DLL���λ�õ����ġ�������Ӽ�����һ����ΪMYMATH��DLL�����DLL��λ�ñ�
��3������һ�������Ǹ������ȡ����������Ϊ�Ա�������������������ĺ͡�
1010ҳ�³���
���Կ�����Ψһ�IJ������entrypoint�Ա�������ʽ��
2. ��@dll.importӦ���������
@dll.import�������Ӧ��������ࡣҲ����˵���Ǹ�������з�����������ͬ��DLL
��ʵ�ֵģ���������ͬ���������ԡ��������������̳У����ǵ����ԭ�򣬶���
����DLL��ĺ�������Ȼ��static�������Ը�ѵ���Ʒ����ǽ�API�����װ��һ����
�������������ʾ��
1011ҳ����
����MessageBeep()��MessageBox()�������ڲ�ͬ�����ﱻ������static�������Ա���
�ڵ�������ʱ�涨�����򡣴��Ҳ����Ϊ�����������ķ���������Win32 API������
���������ͣ���ӳ���Java�ࡣ�����˵��ǣ�������������
A.3.2 com.ms.win32��
Win32 API������൱�Ӵ󡪡���������ǧ�Ƶĺ������Լ�������͡���Ȼ������
�����뽫ÿ��Win32 API����д�ɶ�ӦJava��ʽ��΢�?�ǵ���������⣬������һ��
Java���ͨ��J/Direct��Win32 APIӳ���Java�ࡣ���������ֽ���com.ms.win32��
��װJava SDK 2.0ʱ�����ڰ�װѡ���н�������Ӧ�����ã������ͻᰲװ�����ǵ���
·���С�������ɴ���Java�๹�ɣ���������������Win32 API�ij�����������Լ���
��������������������User32.class��Kernel.class�Լ�Gdi32.class�����ǰ�
����Win32 API�ĺ������ݡ�Ϊʹ�����ǣ�ֻ�����Լ���Java�����ﵼ�뼴�ɡ�ǰ���S
howMsgBoxʾ�����com.ms.win32��д������������ӣ�����Ҳ���ǵ����ø�ǡ���ķ�ʽ
ʹ��UnsatisfiedLinkError����
1012ҳ����
Java�����ڵ�һ�е���ġ����ڣ����ڲ���������������ǰ���µ���MessageBeep()��M
essageBox()������ MessageBeep()����ǿɿ�������ʱҲ������Win32������
Щ�������ڴ���Java�ӿ��ﶨ��ģ�ȫ������Ϊwinx��x�����ʹ��֮���������ĸ����

д������ʱ��com.ms.win32��Ŀ�����δ��ʽ��ɣ����ѿɿ�ʹ�á�
A.3.3 �㼯
���㼯����Marshaling����ָ��һ�������Ա�������ԭʼ�Ķ�������ʽת������������
�ص�ij����ʽ���ٽ�����ͨ����ʽת�����ʺϵ��ú�����õĶ����Ƹ�ʽ����ǰ�����
���У����ǵ�����MessageBox()����������������ִ���MessageBox()�Ǹ�C����
������Java�ִ��Ķ����Ʋ�����C�ִ�������ͬ����������ˣ��Ա����Ի������ȷ�Ĵ�
�ݡ����������ڵ���C����ǰ��J/Direct�Ѱ����ǿ��ǵ��˽�Java�ִ�ת����C�ִ�����
�⡣��������ʺ����б�׼��Java���͡��������ű���ܽ��˼�������͵�Ĭ�϶�Ӧ
��ϵ��
Java C
byte BYTE��CHAR
short SHORT��WORD
int INT��UINT��LONG��ULONG��DWORD
char TCHAR
long __int64
float Float
double Double
boolean BOOL
String LPCTSTR��ֻ������OLEģʽ����Ϊ����ֵ��
byte[] BYTE *
short[] WORD *
char[] TCHAR *
int[] DWORD *
����б?�ɼ�����ȥ�����Ѻ���˵�������ˡ����������£����Dz��ع��������
������֮���ת�����⡣��һ�����봫���û��Զ������͵��Ա����������������ò�
ͬ�ˡ����磬������Ҫ����һ���ṹ���ġ��û��Զ����������ͣ�������Ҫ��һ��ָ
�봫��ԭʼ�ڴ���������Щ����£���һЩ����ı�����������һ��Java�࣬ʹ
������Ϊһ��ָ�봫��ṹ��@dll.struct���������֪ʹ����Щ�ؼ��ֵ�ϸ�ڣ���
�ο���Ʒ�ĵ���
A.3.4 ��д�ص�����
��ЩWin32 API����Ҫ��һ������ָ����Ϊ�Լ��IJ���ʹ�á�Windows API��������
���Ե����Ա�������ͨ�������Ժ����ض����¼�ʱ������һ�����ͽ������ص�����
�����ص���������Ӱ������ڽ���Լ������ڴ�ӡ��������õĻص���Ϊ��̨��ӡ����
�ṩ�ص�����ĵ�ַ��ʹ���ܸ���״̬�����ڱ�Ҫ��ʱ����ֹ��ӡ����
��һ��������API����EnumWindows()������ö��Ŀǰϵͳ�����ж������ڡ�EnumWindow
s()Ҫ���ȡһ������ָ����Ϊ�Լ��IJ���Ȼ��������Windows�ڲ�ά����һ���б?
�����б��ڵ�ÿ�����ڣ������ûص�������ھ����Ϊһ���Ա�������ص���

Ϊ����Java��ﵽͬ���Ŀ�ģ�����ʹ��com.ms.dll�����Callback�ࡣ���Ǵ�Callba
ck��̳У���ȡ��callback()���������ֻ�ܽӽ�int����᷵��int��void������
ǩ��;����ʵʩȡ����ʹ������ص���Windows API����
���ڣ�����Ҫ���е�ȫ���������Ǵ������Callback�������һ��ʵ�������Ϊ��
��ָ�봫�ݸ�API�������J/Direct����������Զ����ʣ��Ĺ�����
����������ӵ�����Win32 API����EnumWindows()��EnumWindowsProc�����callback(
)�������ȡÿ���������ڵľ���ȡ�������֣��������ӡ������̨���ڡ�
1014ҳ����
��sleep()�ĵ������?�ڽ����main()�˳�ǰ��ɡ�
A.3.5 ����J/Direct����
ͨ��@dll.import�������ڵ��޸ķ��ǣ��������õ�J/Direct�����������ԡ���һ
���Ƕ�OLE����ļ򻯷��ʣ��ڶ�����ѡ��API�����ANSI��Unicode�汾��
���Լ��������OLE����᷵������ΪHRESULT��һ��ֵ��������COM�����һ���ṹ��
����ֵ������COM��һ����д���򣬲�ϣ���һ��OLE�����ﷵ��ijЩ��ͬ�Ķ������ͱ�
�뽫һ�������ָ�봫�ݸ����ָ��ָ���������������ݵ��Ǹ��ڴ�����
������Java�У�����û��ָ����ã����⣬���ַ�����������������J/Direct�����ǿ�
��@dll.import��������ʹ��ole�޸ķ�Ӷ��ص���OLE������Ϊole�����
һ�����з������Java��ʽ�ķ���ǩ��ͨ��������������ͣ��Զ�ת����COM��ʽ�ĺ�
��
�ڶ���������ѡ��ANSI����Unicode�ִ����Ʒ��������ִ����п��ƵĴ����Win32 API
�����ṩ�������汾�����磬�������ǹ۲���USER32.DLL�����ķ�ţ���ô�����ҵ�
һ��MessageBox()�����෴�ῴ�� MessageBoxA()��MessageBoxW()����ֱ��Ǹ�
�����ANSI��Unicode�汾�������@dll.import�������ﲻ�涨������ĸ��汾��JV
M�ͻ����������жϡ�����һ�������ڳ���ִ��ʱ���ѽϳ���ʱ�䡣���ԣ�����һ�����
ansi��unicode��auto�޸ķ�Ӳ�Թ涨��
���˽���Щ���Ը���ϸ���������ο�΢�?˾�ṩ�ļ����ĵ���
A.4 ��ԭ�ӿڣ�RNI��
ͬJ/Direct��ȣ�RNI��һ�ֱȷ�Java���븴�ӵö�Ľӿڣ�����Ĺ���Ҳʮ��ǿ��R
NI��J/Direct��ӽ���JVM����Ҳʹ������д������Ч�Ĵ��룬�ܴ�����з����е�Jav
a���󣬶�����ʵ����JVM�ڲ����л��Ƹ���ܵļ��ɡ�
RNI�ڸ���������Sun��˾��JNI�����ǵ����ԭ�򣬶������ڸò�Ʒ��δ��ʽ�깤������
��ֻ������ָ������֮�����Ҫ���졣���˽����ϸ���������ο�΢�?˾���ĵ���

JNI��RNI֮����ڼ���������עĿ�IJ��졣�����г�������msjavah��ɵ�Cͷ�ļ���΢
���ṩ��msjavah�ڹ������൱��Sun��javah����Ӧ����ǰ����JNI������ʹ�õ�Java��
�ļ�ShowMsgBox��
1016ҳ����
��ɶ��Խϲ��⣬�����ﻹ������һЩ���������⣬����һһ������
��RNI�У����з����ij���Ա֪������Ķ����Ʋ��֡��������������ֱ�ӷ����Լ�ϣ��
����Ϣ�����Dz�������JNI��������һ���ֶλ򷽷���ʶ�����ڲ������������
��Ҫ����ͬ�Ķ����Ʋ���Ӧ�����Լ��Ķ�����������Ĺ��з���ֻ����Microsoft JV
M������
��JNI�У�ͨ��JNIEnv�Ա����ɷ��ʴ��������Ա�ͬJVM�򽻵�����RNI�У����ڿ���J
VM�����ĺ������˿�ֱ�ӵ��á������е�ijһЩ��������쳣����һ��������������
��JNI���ֵܡ����������RNI��������JNI�в�ͬ�����ֺ���;��
JNI��RNI���ش��һ������ǡ������ռ�����ģ�͡���JNI�У������ռ��ڹ��з���ִ��
�ڼ�������Java����ִ��ʱ��ͬ�Ĺ��򡣶���RNI�У�Ҫ�ɳ���Ա�ڹ��з�����ڼ���
�и��������ռ�����������������ֹ��Ĭ������£������ռ����ڽ�����з���ǰ��
�ڲ��״̬������һ��������Ա�Ϳɼٶ�׼��ʹ�õĶ����ò������Ǹ�ʱ����ڽ���
�����ռ���Ȼ��һ�����з���׼����ʱ��ִ�У�����Ա��Ӧ���Ǽ��������ռ�������ͨ
�����GCEnable()��� RNI����GC�ǡ�Garbage Collector������д�����������ռ���
����
Ҳ������ȫ�־���������ƵĻ��ơ�������Ա�����ÿɱ�֤�ض��Ķ�����GC��ڼ䲻
���ڱ������������յ������������Ƶģ������������졪����RNI�У����ǰ������
GCFrames��
A.4.1 RNI�ܽ�
RNI��Microsoft JVM���ܼ�����һ��ʵ��������ŵ㣬Ҳ�����ȱ�㡣RNI��JNI���ӵ�
�࣬����ҲΪ�����ṩ�˶�JVM�ڲ���ĸ߶ȿ��ƣ����а��������ռ������⣬����Ȼ
����ٶȽ������Ż���������C����Ա��Ϥ��һЩ���Է����ͼ�����������΢���JVM֮
�⣬����������JVM��
A.5 Java/COM����
COM����ǰ��ΪOLE�����΢�?˾�ġ��������ģ�͡���Component Object Model����
��������ActiveX����������ActiveX�ؼ���Automation�Լ�ActiveX�ĵ����Ļ���C
OM�����˸��Ķ���������һ������Ĺ淶���������������������ͨ�����
ϵͳ��ר������ʵ�֡��໥����������ʵ��Ӧ���У�ΪWin32ϵͳ�������������������
 COM����һ���Ĺ�ϵ��������ϵͳͨ��COM�����ʾ���Լ���һЩ���ԡ��������̿���
�����Ҳ���Խ�����COM�Ļ��ϣ������ܴ�����ע���Լ���COM �����ͨ�����������
����ʽ������������дWin32���룬��ô�����COM�򽻵�����������ǽ���������
COM��̵Ļ������Ҽٶ�������������COM����������ΪCOM�ͻ��ṩ������κ�C
OM�����Լ�COM�ͻ����ܴ�COM������������������һ��COM���󣩵ĸ�����ڽ���
���ܵ�ʹ������ü򵥡�����ʵ�ʵĹ���Ҫǿ��ö࣬�������ǿ�ͨ���߼���;����
ʹ�����ǡ�����ҲҪ���COM���Ÿ���̵���ʶ�����Ѿ������˱���¼�ķ�Χ��������
�������ǿ�󡢵��벻ͬƽ̨�йص����Ը���Ȥ��Ӧ���о�COM��΢�?˾���ĵ����ϣ�
��ϸ�Ķ��й�Java/COM���ɵ��Dz������ݡ�������ø������ϣ������Ƽ�Dale Rog
erson����ġ�Inside COM����������Microsoft Press��1997����档
����COM����������Win32Ӧ�ó���Ľṹ���ģ�����ͨ��Java����ʹ�ã����ʾ��COM��
����������Ե���Ϊ��Ҫ��Java/COM���������� Microsoft Java�������Լ����������
Ȥ�����ԡ�Java��COM�����ǵ�ģ������������ƣ�������������ڸ��������൱ֱ�۵�
�������ڼ�����Ҳ������ʵ���޷��ϡ���Ϊ����COM����������Ҫ��д�κ�����Ĵ���
���������ϸ�ڶ����ɱ������ͣ����������Ƶġ����յĽ�����Java����Ա����
�Դ�ԭʼJava ��������Դ�COM���󡣶���COM�ͻ�����ʹ������COM����������ʹ����
Javaʵ�ֵ�COM�����������������Ѵ�ң�������ʹ�õ���ͨ������ ��COM�����������
չ����ȫ����Javaʵ��һ��ActiveX Automation�������������Java������ʹ��һ��Ac
tiveX�ؼ���
Java��COM������עĿ������֮������COM�ӿ���Java�ġ�interface���ؼ��ֵĹ�ϵ����
�ǽӽ�������һ�������Ϊ��
��COM�����ʾ���˽ӿڣ�Ҳֻ�нӿڣ�
��COM�ӿڱ��?���߱�ʵʩ������Ҫ�ɽ�ʾ���ӿڵ��Ǹ�COM���������ʵʩ
��COM�ӿ��Ƕ���������ص�һ�麯���˵���������ʾ���κ����
��COM�ཫCOM�ӿ���ϵ���һ��Java���ʵ������������Java�ӿڡ�
��COM��һ�����ö���ģ�ͣ�����Ա��Զ�����ܡ�ӵ�С�һ������ֻ�ܻ�öԶ���һ��
�����ӿڵ����á�JavaҲ��һ�����ö���ģ�͡�����һ����������ÿɡ����͡��ɶ�
���ij���ӿڵ����á�
��COM�������ڴ���ġ����ʱ�䡱ȡ����ʹ�ö���Ŀͻ��������������������㣬��
��ͻὫ�Լ����ڴ���ɾȥ����Java�У�һ����������ʱ��Ҳ�ɿͻ���������������
�����ж��Ǹ���������ã�����ͻ�Ⱥ������ռ����Ĵ��?
Java��COM֮�����ֽ��ܵĶ�Ӧ��ϵ����ʹJava����Ա���Է���ط���COM���ԣ�ҲʹJa
va��Ϊ��дCOM�����һ����Ч���ԡ�COM���������޹صģ���COM������ʵ�ϲ��õ�����
��C++��Visual Basic��ͬJava��ȣ�C++�ڽ���COM����ʱ�Եø��ǿ�󣬲�����ɸ���
Ч�Ĵ��룬ֻ�������ʹ�á�Visual Basic��Java�򵥵ö࣬�����������ϵͳ̫
Զ�ˣ�������Ķ���ģ�Ͳ�δʵ����COM�ܺõĶ�Ӧ��ӳ�䣩��ϵ��Java������֮��һ��
�ܺõ����Է�����
�������������Ƕ�COM������һЩ�ؼ�����������ۡ���дJava/COM�ͻ��ͷ�����ʱ����
Щ������������ҪŪ����ġ�
A.5.1 COM��
COM��һ�ֶ����ƹ淶��������ʵʩ���໥�����Ķ������磬COM��Ϊһ������Ķ���
�Ʋ��ֱ����ܹ�������һ��COM������ķ��������ǶԶ����Ʋ��ֵ�һ������������ֻ
Ҫij����������������һ�ֲ��֣��Ϳ�ͨ����ʵ��COM����ͨ��������Ա���ع�ע��
�����һЩ�ͼ�ϸ�ڣ���Ϊ���������Զ������ȷ�IJ��֡����磬������ij�������C+
+д�ģ���ô����������������ɷ��COM�淶��һ�����⺯���񡣶���Щ����ɿ�
ִ�д�������ԣ�����VB�� Java��������������Զ��ҽӵ�COM��
COM��Ҳ�ṩ�˼�����ĺ���������ڴ�����������ϵͳ��һ����ע��COM��ĺ�
��
һ���������ģ�͵Ļ�Ŀ�������
���ö���������������ķ���
�����������Ͷ��󣨻���¶����޷���뻷��
��һ�������������������Ҫ��������⣺������һ���ͻ�����������һ��������
���󷢳���������������£����ͻ����͡����������������������ڳ���������ʹ��
�ģ�����ָһЩ�ض���Ӳ�����á������κ������������ԣ���һ��Ŀ�궼�Ǻ����״�
���ġ���ֻҪ��Ĵ�����һ������Ĵ���飬ͬʱʵ���˷�������������Լ��ͻ�����
���롣���ı��˿ͻ��ͷ����������໥��Ĺ�ͨ��ʽ��ֻ��򵥵����±��������һ��
���ɡ���������Ӧ�ó���ʱ����ͻ��Զ�������������°汾��
������Ӧ�ó�����һЩδ���Լ�����֮�µ�������󹹳ɣ�����ͻ�����Ȼ���졪��
���Dz��ܿ������ǵ�Դ�룬�������ǵĸ��¿�����ȫ���������ǵ�Ӧ�ó�����С�����
�����������Լ��ij�����ʹ���������̿�����ActiveX�ؼ�ʱ���ͻ�������һ�������
���ᰲװ�����ǵ�ϵͳ����ǵij����ܹ����������ڣ���λ���������룬�������
ͬ�������ӣ�Ȼ��ʹ�����Ժ����ǿɰ�װ�ؼ����°汾�����ǵ�Ӧ�ó���Ӧ����
Ȼ�ܹ����У���ʹ�����������£���ҲӦ��ò�ر���һ��������Ϣ�����硰�ؼ�δ��
�����ȵȣ�һ�㲻��Ī������ع��������
����Щ����£����ǵ�������ڶ����Ŀ�ִ�д����ļ���ʵ�ֵģ�DLL��EXE����������
������һ�������Ŀ�ִ�д����ļ���ʵ�֣�����Ҫ�ɲ���ϵͳ�ṩ��һ����׼��������
�����Щ���󡣵�Ȼ�����Dz��������Լ��Ĵ�����ʹ��DLL��EXE��������Ƽ�λ�ã�
��Ϊ��Щ������ܾ�������仯����ʱ��������ʹ�õ����ɲ���ϵͳά����һЩ��ʶ��
�����⣬���ǵ�Ӧ�ó�����Ҫ�Է�����չʾ�����ķ�����е�һ������������������С
�ڽ��ֱ��������������⡣
1. GUID��ע���
COM���ýṹ��������ֵ������Ϊ128λ��Ψһ�Եر�ʶϵͳ��ע���COM��Ŀ����Щ����
����ʽ��ƽ���GUID��Globally Unique IDentifier��ȫ��Ψһ��ʶ�����������
������ɡ����⣬��Щ���ֿ��Ա�֤�ڡ��κοռ��ʱ�䡱���һ�޶���û���ظ�����
�ռ䣬������������������ȡ���ID���룻��ʱ�䣬������ͬʱ���õ�ϵͳ������
��ʱ�䡣����GUID��ʶCOM�ࣨ��ʱ����CLSID������COM�ӿڣ�IID�����������ֲ�ͬ��
�������������ƽṹ������ͬ�ġ�GUID�����������ʹ�ã����ﲻ��׸����
GUID�Լ���ص���Ϣ��������Windowsע����У�����˵�����ڡ�ע����ݿ⡱��Regis
tration Database���С�����һ�ַּ�ʽ����ݿ⣬�ڽ��ڲ���ϵͳ�У���������ϵͳ
��Ӳ�������йصĴ�����Ϣ������COM��ע�������ϵͳ�ڰ�װ��������������ǵ�C
LSID��ʵ�����ǵĿ�ִ���ļ������ּ�λ���Լ��������ϸ�ڡ�����һ���Ƚ���Ҫ��ϸ
���������ProgID��ProgID�ڸ����������� GUID����Ϊ���Ƕ���ʶ��һ��COM�������
������GUID��һ�������Ƶġ�ͨ���㷨��ɵ�ֵ����ProgID�����ɳ���Ա������ִ�ֵ
��ProgID ����ͬһ��CLSID����ġ�
����˵һ��COM�������ϵͳ��ע�ᣬ�������һ�������������CLSID�����ִ���ļ�
�Ѵ�����ע����У�ProgIDͨ��Ҳ�Ѿ�λ�����ں���������������Ҫ�������ע��
��ʹ��COM�����
ע����һ����Ҫ�ص��������Ϊ�ͻ��ͷ���������֮���һ��ȥ���ʹ�á�����ע��
���ڱ����һЩ��Ϣ���ͻ��ἤ�������������һ����Ϣ�Ƿ�����ִ��ģ�������λ��
�������λ�÷����˱䶯��ע����ڵ���Ϣ�ͻ���Ӧ�ظ��¡���������¹�̶��ڿͻ�
��˵�ǡ�͸�������߿�����ġ�����ֻ��ֱ��ʹ��ProgID�� CLSID���ɡ����仰˵��ע
���ʹ�����������λ��͸����Ϊ�˿��ܡ�����DCOM���ֲ�ʽCOM�������룬�ڱ��ػ���
�����е�һ���������������Ƶ������е�һ̨Զ�̻�����������������������ͻ���
���˿��ע�⣨������������ˣ���
2. ���Ϳ�
����COM���ж�̬���ӵ�������ͬʱ���ڿͻ��ͷ�����������Էֿ�������չ�����Կͻ�
��ʱ��Ҫ��̬����ɷ�����չʾ�����ķ�����Щ�������á����Ϳ⡱��Type Library
����һ�ֶ����Ƶġ��������޹ص���ʽ�����ģ�����ӿںͷ���ǩ����ȿ�����һ
���������ļ���ͨ������.TLB��չ��Ҳ���������ӵ�ִ�г����ڲ���һ��Win32��Դ
�������ڼ䣬�ͻ����������Ϳ����Ϣ���÷������еĺ���
���ǿ���дһ��Microsoft Interface Definition Language��΢��ӿڶ������ԣ�MID
L��Դ�ļ�����MIDL������������Ӷ����һ��.TLB�ļ���MIDL���Ե������Ƕ�COM��
���ӿ��Լ���������������������ơ��﷨�Լ���;�϶�����OMB/CORBA IDL��Ȼ��J
ava����Ա����ʹ��MIDL�����滹�ὲ����һ�ֲ�ͬ��Microsoft���ߣ����ܶ���Java��
�ļ����������һ�����Ϳ⡣
3. COM:HRESULT�еĺ���ش���
�ɷ�����չʾ������COM����᷵��һ��ֵ������Ԥ�ȶ���õ�HRESULT���͡�HRESULT��
��һ����������ֶε�����������ʹ�ö��ʧ�ܺͳɹ����룬ͬʱ������ʹ����
����Ϣ������COM����ص���һ��HRESULT�����Բ����÷���ֵ�Ӻ��������ȡ��ԭʼ
��ݡ������뷵����ݣ��ɴ���ָ��һ���ڴ������ָ�룬�������Ǹ������������
�ݡ����ǰ����Ϊ���ⲿ������ΪJava/COM����Ա�����Dz��ع��ڹ�ע������⣬
��Ϊ��������������Զ��չ�һ�С�������⽫�ں����С���イ����
A.5.2 MS Java/COM����
ͬC++/COM����Ա��ȣ�Microsoft Java��������������Լ���ʽ����Ĺ��߼������
Java/COM����Ա�Ĺ������������������������Ͱ�ɽ�Java�൱��COM��Դ�
�ڴ��������£�����ֻ������Microsoft JVMΪCOM�ṩ��֧�֣�ͬʱ��������������
�ⲿ���ߡ�
Microsoft Java V
--
   j&=   y+ y*    jv+   yy-v    v &
  wE!"   j17$T   7MPC   NU$E-   Ej&v-
  O*K^  yHH:Ovm+ UMMk   BMNTO: H1="7'
 jO&OH: "OH&"E~  U0H1   BB71` jCf'U:
 vM1H1   jB-j1  wHhHh*-/$B)B-   BkJUk
 ^HI'OH j""^N1  "OHOK~  H$H"Da jP'N ^
�� ��Դ:���ɽ��ˮ bbs.neu.edu.cn��[FROM: 219.216.70.3]
Technical Details
Message-ID: <492eHi$Beo@bbs.neu.edu.cn>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!elnk-pas-nf1!elnk-nf2-pas!newsfeed.earthlink.net!sjc70.webusenet.com!news.webusenet.com!news.neu.edu.cn!NEU

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: f6cb0,83ec250045d1dab6,start
X-Google-Attributes: gidf6cb0,public
X-Google-ArrivalTime: 2003-10-27 17:51:19 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!elnk-pas-nf1!elnk-nf2-pas!newsfeed.earthlink.net!sjc70.webusenet.com!news.webusenet.com!news.neu.edu.cn!NEU
From: amou.bbs@bbs.neu.edu.cn (�˺�2��)
Newsgroups: cn.bbs.comp.lang.java
Subject: Java���˼��--��¼A ʹ�÷�JAVA����
Date: 28 Oct 2003 01:50:38 GMT
Organization: ��ɽ��ˮ
Message-ID: <492eHi$Beo@bbs.neu.edu.cn>
Mime-Version: 1.0
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: 8bit
X-Filename: java/M.1067305820.A
Lines: 505