Top


定義場所(file name)

hotspot/src/share/vm/classfile/classLoader.cpp

名前(function name)

void ClassLoader::update_class_path_entry_list(const char *path,
                                               bool check_for_duplicates) {

本体部(body)

  {- -------------------------------------------
  (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.