jdk/src/windows/bin/java_md.c
jclass FindBootStrapClass(JNIEnv *env, const char *classname)
{
{- -------------------------------------------
(1) (変数宣言など)
---------------------------------------- -}
HMODULE hJvm;
{- -------------------------------------------
(1) JVM_FindClassFromBootLoader() を呼んで, classname 引数で指定されたクラスをロードする.
(なお, JVM_FindClassFromBootLoader() は GetProcAddress() で実行時に取得する.
一度取得したら findBootClass 変数に束縛し, 以降はそれを流用している.
また, GetProcAddress() が失敗した場合は, JLI_ReportErrorMessage() でトレース出力を出した後, NULL をリターン).
---------------------------------------- -}
if (findBootClass == NULL) {
hJvm = GetModuleHandle(JVM_DLL);
if (hJvm == NULL) return NULL;
/* need to use the demangled entry point */
findBootClass = (FindClassFromBootLoader_t *)GetProcAddress(hJvm,
"JVM_FindClassFromBootLoader");
if (findBootClass == NULL) {
JLI_ReportErrorMessage(DLL_ERROR4, "JVM_FindClassFromBootLoader");
return NULL;
}
}
return findBootClass(env, classname);
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.