diff a/src/java.base/share/native/libjimage/imageFile.cpp b/src/java.base/share/native/libjimage/imageFile.cpp
--- a/src/java.base/share/native/libjimage/imageFile.cpp
+++ b/src/java.base/share/native/libjimage/imageFile.cpp
@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2025, Oracle and/or its affiliates. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  *
@@ -146,69 +146,10 @@
 void ImageLocation::clear_data() {
     // Set defaults to zero.
     memset(_attributes, 0, sizeof(_attributes));
 }
 
-// ImageModuleData constructor maps out sub-tables for faster access.
-ImageModuleData::ImageModuleData(const ImageFileReader* image_file) :
-        _image_file(image_file),
-        _endian(image_file->endian()) {
-}
-
-// Release module data resource.
-ImageModuleData::~ImageModuleData() {
-}
-
-
-// Return the module in which a package resides.    Returns NULL if not found.
-const char* ImageModuleData::package_to_module(const char* package_name) {
-    // replace all '/' by '.'
-    char* replaced = new char[(int) strlen(package_name) + 1];
-    assert(replaced != NULL && "allocation failed");
-    int i;
-    for (i = 0; package_name[i] != '\0'; i++) {
-      replaced[i] = package_name[i] == '/' ? '.' : package_name[i];
-    }
-    replaced[i] = '\0';
-
-    // build path /packages/<package_name>
-    const char* radical = "/packages/";
-    char* path = new char[(int) strlen(radical) + (int) strlen(package_name) + 1];
-    assert(path != NULL && "allocation failed");
-    strcpy(path, radical);
-    strcat(path, replaced);
-    delete[] replaced;
-
-    // retrieve package location
-    ImageLocation location;
-    bool found = _image_file->find_location(path, location);
-    delete[] path;
-    if (!found) {
-        return NULL;
-    }
-
-    // retrieve offsets to module name
-    int size = (int)location.get_attribute(ImageLocation::ATTRIBUTE_UNCOMPRESSED);
-    u1* content = new u1[size];
-    assert(content != NULL && "allocation failed");
-    _image_file->get_resource(location, content);
-    u1* ptr = content;
-    // sequence of sizeof(8) isEmpty|offset. Use the first module that is not empty.
-    u4 offset = 0;
-    for (i = 0; i < size; i+=8) {
-        u4 isEmpty = _endian->get(*((u4*)ptr));
-        ptr += 4;
-        if (!isEmpty) {
-            offset = _endian->get(*((u4*)ptr));
-            break;
-        }
-        ptr += 4;
-    }
-    delete[] content;
-    return _image_file->get_strings().get(offset);
-}
-
 // Manage a table of open image files.  This table allows multiple access points
 // to share an open image.
 ImageFileReaderTable::ImageFileReaderTable() : _count(0), _max(_growth) {
     _table = static_cast<ImageFileReader**>(calloc(_max, sizeof(ImageFileReader*)));
     assert(_table != NULL && "allocation failed");
@@ -338,12 +279,11 @@
     assert(id_check(id) && "invalid image id");
     return (ImageFileReader*)id;
 }
 
 // Constructor initializes to a closed state.
-ImageFileReader::ImageFileReader(const char* name, bool big_endian) :
-    _module_data(NULL) {
+ImageFileReader::ImageFileReader(const char* name, bool big_endian) {
     // Copy the image file name.
      int len = (int) strlen(name) + 1;
     _name = new char[len];
     assert(_name != NULL  && "allocation failed");
     strncpy(_name, name, len);
@@ -360,14 +300,10 @@
     // Free up name.
     if (_name) {
         delete[] _name;
         _name = NULL;
     }
-
-    if (_module_data != NULL) {
-        delete _module_data;
-    }
 }
 
 // Open image file for read access.
 bool ImageFileReader::open() {
     // If file exists open for reading.
@@ -412,15 +348,11 @@
     _offsets_table = (u4*)(_index_data + offsets_table_offset);
     // Compute address of index location attribute data.
     _location_bytes = _index_data + location_bytes_offset;
     // Compute address of index string table.
     _string_bytes = _index_data + string_bytes_offset;
-
-    // Initialize the module data
-    _module_data = new ImageModuleData(this);
-    // Successful open (if memory allocation succeeded).
-    return _module_data != NULL;
+    return true;
 }
 
 // Close image file.
 void ImageFileReader::close() {
     // Deallocate the index.
@@ -431,15 +363,10 @@
     // Close file.
     if (_fd != -1) {
         osSupport::close(_fd);
         _fd = -1;
     }
-
-    if (_module_data != NULL) {
-        delete _module_data;
-        _module_data = NULL;
-    }
 }
 
 // Read directly from the file.
 bool ImageFileReader::read_at(u1* data, u8 size, u8 offset) const {
     return (u8)osSupport::read(_fd, (char*)data, size, offset) == size;
@@ -565,10 +492,5 @@
         // Read bytes from offset beyond the image index.
         bool is_read = read_at(uncompressed_data, uncompressed_size, _index_size + offset);
         assert(is_read && "error reading from image or short read");
     }
 }
-
-// Return the ImageModuleData for this image
-ImageModuleData * ImageFileReader::get_image_module_data() {
-    return _module_data;
-}
