int classlibInitialiseNatives() { Class *field_accessor; FieldBlock *base_fb = NULL; char *dll_path = getBootDllPath(); char *dll_name = getDllName("java"); char path[strlen(dll_path) + strlen(dll_name) + 2]; strcat(strcat(strcpy(path, dll_path), "/"), dll_name); sysFree(dll_name); if(!resolveDll(path, NULL)) { jam_fprintf(stderr, "Error initialising natives: couldn't open " "libjava.so: use -verbose:jni for more " "information\n"); return FALSE; } field_accessor = findSystemClass0(SYMBOL( sun_reflect_UnsafeStaticFieldAccessorImpl)); if(field_accessor != NULL) base_fb = findField(field_accessor, SYMBOL(base), SYMBOL(sig_java_lang_Object)); if(base_fb == NULL) { jam_fprintf(stderr, "Error initialising natives: %s " "missing or malformed\n", SYMBOL(sun_reflect_UnsafeStaticFieldAccessorImpl)); return FALSE; } hideFieldFromGC(base_fb); return initialiseJVMInterface(); }
void showVersionAndCopyright() { printf("java version \"%s\"\n", JAVA_COMPAT_VERSION); printf("JamVM version %s\n", VERSION); printf("Copyright (C) 2003-2008 Robert Lougher <*****@*****.**>\n\n"); printf("This program is free software; you can redistribute it and/or\n"); printf("modify it under the terms of the GNU General Public License\n"); printf("as published by the Free Software Foundation; either version 2,\n"); printf("or (at your option) any later version.\n\n"); printf("This program is distributed in the hope that it will be useful,\n"); printf("but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); printf("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"); printf("GNU General Public License for more details.\n"); printf("\nBuild information:\n\nExecution Engine: "); #ifdef THREADED #ifdef DIRECT #ifdef INLINING printf("inline-"); #else /* INLINING */ printf("direct-"); #endif /* INLINING */ #endif /* DIRECT */ printf("threaded interpreter"); #ifdef USE_CACHE printf(" with stack-caching\n"); #else /* USE_CACHE*/ printf("\n"); #endif /* USE_CACHE */ #else /* THREADED */ printf("switch-based interpreter\n"); #endif /*THREADED */ #if defined(__GNUC__) && defined(__VERSION__) printf("Compiled with: gcc %s\n", __VERSION__); #endif printf("\nBoot Library Path: %s\n", getBootDllPath()); printf("Boot Class Path: %s\n", DFLT_BCP); }