hotspot/src/share/vm/classfile/classLoader.cpp
void ClassLoader::update_class_path_entry_list(const char *path,
bool check_for_duplicates) {
{- -------------------------------------------
(1) (変数宣言など)
---------------------------------------- -}
struct stat st;
{- -------------------------------------------
(1) ClassLoader::create_class_path_entry() を呼んで
path 引数で指定されたファイル/ディレクトリに対応する ClassPathEntry オブジェクトを生成し,
ClassLoader::add_to_list() を呼んで ClassLoader 内のリストに登録する.
(ただし, path 引数で指定されたファイル/ディレクトリがない場合(= os::stat() が非ゼロの場合)は何もしない)
(また, check_for_duplicates 引数が true の場合は, 既に登録されているものは登録しない)
---------------------------------------- -}
if (os::stat((char *)path, &st) == 0) {
// File or directory found
ClassPathEntry* new_entry = NULL;
create_class_path_entry((char *)path, st, &new_entry, LazyBootClassLoader);
// The kernel VM adds dynamically to the end of the classloader path and
// doesn't reorder the bootclasspath which would break java.lang.Package
// (see PackageInfo).
// Add new entry to linked list
if (!check_for_duplicates || !contains_entry(new_entry)) {
add_to_list(new_entry);
}
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.