Чтобы расширить то, что сказал dfa, причина в том, что файл jar настроен как zip-файл. Если вы хотите изменить файл, вы должны прочитать все записи, изменить ту, которую хотите изменить, и затем записать записи обратно в файл jar. Я должен был сделать это раньше, и это был единственный способ найти это.
EDIT
Обратите внимание, что для этого используются внутренние редакторы jar-файлов Java, которые являются файловыми потоками. Я уверен, что есть способ сделать это, вы можете прочитать весь jar в память, изменить все, а затем записать обратно в поток файлов. Это то, что, по моему мнению, делают такие утилиты, как 7-Zip и другие, так как я считаю, что ToC заголовка zip должен быть определен во время записи. Однако я могу ошибаться.