220 static ClassPathEntry* _first_append_entry; 221 // Last entry in linked list of appended ClassPathEntry instances 222 static ClassPathEntry* _last_append_entry; 223 224 // Info used by CDS 225 CDS_ONLY(static ClassPathEntry* _app_classpath_entries;) 226 CDS_ONLY(static ClassPathEntry* _last_app_classpath_entry;) 227 CDS_ONLY(static ClassPathEntry* _module_path_entries;) 228 CDS_ONLY(static ClassPathEntry* _last_module_path_entry;) 229 CDS_ONLY(static void setup_app_search_path(const char* class_path);) 230 CDS_ONLY(static void setup_module_search_path(const char* path, TRAPS);) 231 static void add_to_app_classpath_entries(const char* path, 232 ClassPathEntry* entry, 233 bool check_for_duplicates); 234 CDS_ONLY(static void add_to_module_path_entries(const char* path, 235 ClassPathEntry* entry);) 236 public: 237 CDS_ONLY(static ClassPathEntry* app_classpath_entries() {return _app_classpath_entries;}) 238 CDS_ONLY(static ClassPathEntry* module_path_entries() {return _module_path_entries;}) 239 240 protected: 241 // Initialization: 242 // - setup the boot loader's system class path 243 // - setup the boot loader's patch mod entries, if present 244 // - create the ModuleEntry for java.base 245 static void setup_bootstrap_search_path(); 246 static void setup_boot_search_path(const char *class_path); 247 static void setup_patch_mod_entries(); 248 static void create_javabase(); 249 250 static void load_zip_library(); 251 static void load_jimage_library(); 252 253 public: 254 static ClassPathEntry* create_class_path_entry(const char *path, const struct stat* st, 255 bool throw_exception, 256 bool is_boot_append, 257 bool from_class_path_attr, TRAPS); 258 259 // If the package for the fully qualified class name is in the boot | 220 static ClassPathEntry* _first_append_entry; 221 // Last entry in linked list of appended ClassPathEntry instances 222 static ClassPathEntry* _last_append_entry; 223 224 // Info used by CDS 225 CDS_ONLY(static ClassPathEntry* _app_classpath_entries;) 226 CDS_ONLY(static ClassPathEntry* _last_app_classpath_entry;) 227 CDS_ONLY(static ClassPathEntry* _module_path_entries;) 228 CDS_ONLY(static ClassPathEntry* _last_module_path_entry;) 229 CDS_ONLY(static void setup_app_search_path(const char* class_path);) 230 CDS_ONLY(static void setup_module_search_path(const char* path, TRAPS);) 231 static void add_to_app_classpath_entries(const char* path, 232 ClassPathEntry* entry, 233 bool check_for_duplicates); 234 CDS_ONLY(static void add_to_module_path_entries(const char* path, 235 ClassPathEntry* entry);) 236 public: 237 CDS_ONLY(static ClassPathEntry* app_classpath_entries() {return _app_classpath_entries;}) 238 CDS_ONLY(static ClassPathEntry* module_path_entries() {return _module_path_entries;}) 239 240 static bool has_bootclasspath_append() { return _first_append_entry != NULL; } 241 242 protected: 243 // Initialization: 244 // - setup the boot loader's system class path 245 // - setup the boot loader's patch mod entries, if present 246 // - create the ModuleEntry for java.base 247 static void setup_bootstrap_search_path(); 248 static void setup_boot_search_path(const char *class_path); 249 static void setup_patch_mod_entries(); 250 static void create_javabase(); 251 252 static void load_zip_library(); 253 static void load_jimage_library(); 254 255 public: 256 static ClassPathEntry* create_class_path_entry(const char *path, const struct stat* st, 257 bool throw_exception, 258 bool is_boot_append, 259 bool from_class_path_attr, TRAPS); 260 261 // If the package for the fully qualified class name is in the boot |