@@ -844,37 +844,16 @@ void MetaspaceShared::adjust_heap_sizes_for_dumping() {
844844#endif // INCLUDE_CDS_JAVA_HEAP && _LP64
845845
846846void MetaspaceShared::get_default_classlist (char * default_classlist, const size_t buf_size) {
847- // Construct the path to the class list (in jre/lib)
848- // Walk up two directories from the location of the VM and
849- // optionally tack on "lib" (depending on platform)
850- os::jvm_path (default_classlist, (jint)(buf_size));
851- for (int i = 0 ; i < 3 ; i++) {
852- char *end = strrchr (default_classlist, *os::file_separator ());
853- if (end != nullptr ) *end = ' \0 ' ;
854- }
855- size_t classlist_path_len = strlen (default_classlist);
856- if (classlist_path_len >= 3 ) {
857- if (strcmp (default_classlist + classlist_path_len - 3 , " lib" ) != 0 ) {
858- if (classlist_path_len < buf_size - 4 ) {
859- jio_snprintf (default_classlist + classlist_path_len,
860- buf_size - classlist_path_len,
861- " %slib" , os::file_separator ());
862- classlist_path_len += 4 ;
863- }
864- }
865- }
866- if (classlist_path_len < buf_size - 10 ) {
867- jio_snprintf (default_classlist + classlist_path_len,
868- buf_size - classlist_path_len,
869- " %sclasslist" , os::file_separator ());
870- }
847+ const char * filesep = os::file_separator ();
848+ jio_snprintf (default_classlist, buf_size, " %s%slib%sclasslist" ,
849+ Arguments::get_java_home (), filesep, filesep);
871850}
872851
873852void MetaspaceShared::preload_classes (TRAPS) {
874853 char default_classlist[JVM_MAXPATHLEN];
875854 const char * classlist_path;
876855
877- get_default_classlist (default_classlist, sizeof (default_classlist) );
856+ get_default_classlist (default_classlist, JVM_MAXPATHLEN );
878857 if (SharedClassListFile == nullptr ) {
879858 classlist_path = default_classlist;
880859 } else {
@@ -929,7 +908,7 @@ void MetaspaceShared::preload_and_dump_impl(StaticArchiveBuilder& builder, TRAPS
929908 if (CDSConfig::is_dumping_preimage_static_archive ()) {
930909 log_info (cds)(" Reading lambda form invokers from JDK default classlist ..." );
931910 char default_classlist[JVM_MAXPATHLEN];
932- get_default_classlist (default_classlist, sizeof (default_classlist) );
911+ get_default_classlist (default_classlist, JVM_MAXPATHLEN );
933912 struct stat statbuf;
934913 if (os::stat (default_classlist, &statbuf) == 0 ) {
935914 ClassListParser::parse_classlist (default_classlist,
0 commit comments