Você pode fazer isso em duas etapas:
zip -d myjar.jar path/to/file/to/delete
jar uf myjar.jar -C base/path path/to/file/to/add
Você pode ignorar a -C base/path parte se já estiver no diretório base (contendo path/to/file/to/add ).
Ao trabalhar com JARs em vez de arquivos ZIP simples, você deve ter o hábito de usar jar em vez de zip na medida do possível; garante que o manifesto seja armazenado corretamente.
Com um arquivo ZIP simples, você pode adicionar ou atualizar um arquivo simplesmente (re-) arquivando-o; então, ao invés do comando jar acima, use:
zip myzip.zip path/to/file/to/add
Você precisa estar no diretório base para que isso funcione. ( jar funcionará também, mas é estranho exigir jar ao trabalhar com arquivos ZIP.)