Hello This is the cmd I used: ______________________________________________________________________________ __ # kaffe -v -vmdebug AWT,NATIVELIB -ss 128600 -cp $PWD Calc ------------------------------------------------------------------------------ -- And I got the following errors: ++++++++++++++++++++++++++++++ Native lib /cvs/xscale/jre/lib/arm/libnative LOAD desc=0xb42d0 index=0 ++ref=1 Couldn't find JNI_OnLoad in library handle 0 == libnative. Error message is /cvs/xscale/jre/lib/arm/libkaffevm-1.1.x-cvs.so: undefined symbol: JNI_OnLoad. Loading java/lang/Object.class(/cvs/xscale/jre/lib/rt.jar) [compressed] Loading java/io/Serializable.class(/cvs/xscale/jre/lib/rt.jar) [compressed]
... ading kaffe/io/StdErrorStream.class(/cvs/xscale/jre/lib/rt.jar) [compressed] Loading java/io/FileInputStream.class(/cvs/xscale/jre/lib/rt.jar) [compressed] Loading java/io/FileDescriptor.class(/cvs/xscale/jre/lib/rt.jar) [compressed] Loading java/io/FileOutputStream.class(/cvs/xscale/jre/lib/rt.jar) [compressed] Method = java/lang/System.initProperties(Ljava/util/Properties;)Ljava/util/Properties; Native stub = 'java_lang_System_initProperties' Found java_lang_System_initProperties in library handle 0 == libnative. Internal error: caught an unexpected exception. Please check your CLASSPATH and your installation. java/lang/NullPointerException at java.lang.System.initProperties(System.java:native) at java.lang.System.<clinit>(System.java:43) at java.lang.ClassLoader.<init>(ClassLoader.java:115) at java.lang.ClassLoader.<init>(ClassLoader.java:111) at java.security.SecureClassLoader.<init>(SecureClassLoader.java:59) at java.net.URLClassLoader.<init>(URLClassLoader.java:544) at kaffe.lang.AppClassLoader.<init>(AppClassLoader.java:237) Aborted ------------------------------------------------------------------------------ --- I am not sure what caused my program to Aborted now. Maybe anyone knows? But the "Error message" : |Couldn't find JNI_OnLoad in library handle 0 == libnative. |Error message is /cvs/xscale/jre/lib/arm/libkaffevm-1.1.x-cvs.so: |undefined symbol: JNI_OnLoad. always exists. Then I try to make sure what really happened to the symbol 'JNI_OnLoad'. Step 1. #cd kaffe #find * -exec grep -inH "JNI_On" {} \; +++-------------------------------------------------------------------- ChangeLog.6:952: * kaffe/kaffevm/external.c (loadNativeLibrary2) Call JNI_OnLoad include/jni.h:196:JNIEXPORT jint JNICALL JNI_OnLoad (JavaVM *, void *); include/jni.h:197:JNIEXPORT void JNICALL JNI_OnUnload (JavaVM *, void *); kaffe/kaffevm/external.c:380: func = loadNativeLibrarySym("JNI_OnLoad"); kaffe/kaffevm/external.c:383: /* Call JNI_OnLoad */ Binary file kaffe/kaffevm/.libs/external.o matches Binary file kaffe/kaffevm/.libs/libkaffevm-1.1.x-cvs.so matches Binary file kaffe/kaffevm/.libs/libkaffevm.so matches Binary file kaffe/kaffevm/.libs/libkaffevm-1.1.x-cvs.soT matches +++--------------------------------------------------------------------- Step 2. From Step1 we can make sure that there is only two source file contains the symbol "JNI_OnLoad". #vi include/jni.h +++--------------------------------------------------------------------- /* These functions might be defined in libraries which we load; the JNI implementation calls them at the appropriate times. */ JNIEXPORT jint JNICALL JNI_OnLoad (JavaVM *, void *); JNIEXPORT void JNICALL JNI_OnUnload (JavaVM *, void *); +++---------------------------------------------------------------------- #vi kaffe/kaffevm/external.c +++---------------------------------------------------------------------- func = loadNativeLibrarySym("JNI_OnLoad"); if (func != NULL) { JavaVM *jvm = &Kaffe_JavaVM; /* Call JNI_OnLoad */ ((jint(JNICALL *)(JavaVM *, void *))func)(jvm, NULL); } +++---------------------------------------------------------------------- Step 3. From Step2 we know that "JNI_OnLoad" is not realized now in kaffe. So I think the "Error Message" means that: +++---------------------------------------------------------------------- libkaffevm-1.1.x-cvs.so loads the func "func = loadNativeLibrarySym("JNI_OnLoad")" from the libnative,but there is no such a func there in libnative. Because even we couldn't find such a symbol named "JNI_OnLoad" at the libnative. +++---------------------------------------------------------------------- Could anyone point out the trick for me? cheers Saw --http://www.eyou.com --稳定可靠的电子信箱 语音邮件 移动书签 日历服务 网络存储...亿邮未尽 --http://vip.eyou.com --快快登录亿邮VIP信箱 注册您中意的用户名 _______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe