361 // boot class path string no longer contains the "prefix" to |
361 // boot class path string no longer contains the "prefix" to |
362 // the boot class path base piece as it did when |
362 // the boot class path base piece as it did when |
363 // -Xbootclasspath/p was supported. |
363 // -Xbootclasspath/p was supported. |
364 static PathString *_system_boot_class_path; |
364 static PathString *_system_boot_class_path; |
365 |
365 |
|
366 // Set if a modular java runtime image is present vs. a build with exploded modules |
|
367 static bool _has_jimage; |
|
368 |
366 // temporary: to emit warning if the default ext dirs are not empty. |
369 // temporary: to emit warning if the default ext dirs are not empty. |
367 // remove this variable when the warning is no longer needed. |
370 // remove this variable when the warning is no longer needed. |
368 static char* _ext_dirs; |
371 static char* _ext_dirs; |
369 |
372 |
370 // java.vendor.url.bug, bug reporting URL for fatal errors. |
373 // java.vendor.url.bug, bug reporting URL for fatal errors. |
408 static Mode _mode; |
411 static Mode _mode; |
409 static void set_mode_flags(Mode mode); |
412 static void set_mode_flags(Mode mode); |
410 static bool _java_compiler; |
413 static bool _java_compiler; |
411 static void set_java_compiler(bool arg) { _java_compiler = arg; } |
414 static void set_java_compiler(bool arg) { _java_compiler = arg; } |
412 static bool java_compiler() { return _java_compiler; } |
415 static bool java_compiler() { return _java_compiler; } |
413 |
|
414 // Capture the index location of -Xbootclasspath\a within sysclasspath. |
|
415 // Used when setting up the bootstrap search path in order to |
|
416 // mark the boot loader's append path observability boundary. |
|
417 static int _bootclassloader_append_index; |
|
418 |
416 |
419 // -Xdebug flag |
417 // -Xdebug flag |
420 static bool _xdebug_mode; |
418 static bool _xdebug_mode; |
421 static void set_xdebug_mode(bool arg) { _xdebug_mode = arg; } |
419 static void set_xdebug_mode(bool arg) { _xdebug_mode = arg; } |
422 static bool xdebug_mode() { return _xdebug_mode; } |
420 static bool xdebug_mode() { return _xdebug_mode; } |
667 |
665 |
668 // -Xms |
666 // -Xms |
669 static size_t min_heap_size() { return _min_heap_size; } |
667 static size_t min_heap_size() { return _min_heap_size; } |
670 static void set_min_heap_size(size_t v) { _min_heap_size = v; } |
668 static void set_min_heap_size(size_t v) { _min_heap_size = v; } |
671 |
669 |
672 // -Xbootclasspath/a |
|
673 static int bootclassloader_append_index() { |
|
674 return _bootclassloader_append_index; |
|
675 } |
|
676 static void set_bootclassloader_append_index(int value) { |
|
677 // Set only if the index has not been set yet |
|
678 if (_bootclassloader_append_index == -1) { |
|
679 _bootclassloader_append_index = value; |
|
680 } |
|
681 } |
|
682 |
|
683 // -Xrun |
670 // -Xrun |
684 static AgentLibrary* libraries() { return _libraryList.first(); } |
671 static AgentLibrary* libraries() { return _libraryList.first(); } |
685 static bool init_libraries_at_startup() { return !_libraryList.is_empty(); } |
672 static bool init_libraries_at_startup() { return !_libraryList.is_empty(); } |
686 static void convert_library_to_agent(AgentLibrary* lib) |
673 static void convert_library_to_agent(AgentLibrary* lib) |
687 { _libraryList.remove(lib); |
674 { _libraryList.remove(lib); |
737 static void set_library_path(const char *value) { _java_library_path->set_value(value); } |
724 static void set_library_path(const char *value) { _java_library_path->set_value(value); } |
738 static void set_ext_dirs(char *value) { _ext_dirs = os::strdup_check_oom(value); } |
725 static void set_ext_dirs(char *value) { _ext_dirs = os::strdup_check_oom(value); } |
739 |
726 |
740 // Set up the underlying pieces of the system boot class path |
727 // Set up the underlying pieces of the system boot class path |
741 static void add_xpatchprefix(const char *module_name, const char *path, bool* xpatch_javabase); |
728 static void add_xpatchprefix(const char *module_name, const char *path, bool* xpatch_javabase); |
742 static void set_sysclasspath(const char *value) { |
729 static void set_sysclasspath(const char *value, bool has_jimage) { |
|
730 // During start up, set by os::set_boot_path() |
|
731 assert(get_sysclasspath() == NULL, "System boot class path previously set"); |
743 _system_boot_class_path->set_value(value); |
732 _system_boot_class_path->set_value(value); |
744 set_jdkbootclasspath_append(); |
733 _has_jimage = has_jimage; |
745 } |
734 } |
746 static void append_sysclasspath(const char *value) { |
735 static void append_sysclasspath(const char *value) { |
747 _system_boot_class_path->append_value(value); |
736 _system_boot_class_path->append_value(value); |
748 set_jdkbootclasspath_append(); |
737 _jdk_boot_class_path_append->append_value(value); |
749 } |
738 } |
750 static void set_jdkbootclasspath_append(); |
|
751 |
739 |
752 static GrowableArray<ModuleXPatchPath*>* get_xpatchprefix() { return _xpatchprefix; } |
740 static GrowableArray<ModuleXPatchPath*>* get_xpatchprefix() { return _xpatchprefix; } |
753 static char* get_sysclasspath() { return _system_boot_class_path->value(); } |
741 static char* get_sysclasspath() { return _system_boot_class_path->value(); } |
754 static char* get_jdk_boot_class_path_append() { return _jdk_boot_class_path_append->value(); } |
742 static char* get_jdk_boot_class_path_append() { return _jdk_boot_class_path_append->value(); } |
|
743 static bool has_jimage() { return _has_jimage; } |
755 |
744 |
756 static char* get_java_home() { return _java_home->value(); } |
745 static char* get_java_home() { return _java_home->value(); } |
757 static char* get_dll_dir() { return _sun_boot_library_path->value(); } |
746 static char* get_dll_dir() { return _sun_boot_library_path->value(); } |
758 static char* get_ext_dirs() { return _ext_dirs; } |
747 static char* get_ext_dirs() { return _ext_dirs; } |
759 static char* get_appclasspath() { return _java_class_path->value(); } |
748 static char* get_appclasspath() { return _java_class_path->value(); } |