Zip files have the index at the end of the file so that new files can be added to the archive without rewriting the whole thing.
Zips can also be read from front to back, reading the header of each entry and skipping the compressed data to the next header, which is most of what zip repair utilities do (or did, not sure anyone repairs zips any more). But it's faster to read the index.
Not every zip-based format behaves like this, Microsoft's zip based container formats tend to require a proper beginning too. For example if you add docx (which is a zip file) to the end of something else and open it in Microsoft Word, it will complain that the file is corrupted, and will suggest to repair it.
Zips can also be read from front to back, reading the header of each entry and skipping the compressed data to the next header, which is most of what zip repair utilities do (or did, not sure anyone repairs zips any more). But it's faster to read the index.
And to be clear, jars are zip files.