Pessoalmente, uso jar
porque me parece mais natural e permite outras operações, como atualizar conteúdos também. Aqui estão os comandos de leitura:
Listar conteúdo
jar tf myjar.jar
Extraia o conteúdo para pwd
jar xf myjar.jar
Extraia um arquivo específico, criando dirs conforme necessário
jar xf myjar.jar /foo/bar.class
Extrair o bytecode em si não costuma ser muito útil. Para fazer sentido, você precisa descompilar em algo legível.
Não há muitos bons decompiladores java para escolher. Eu costumo usar JD-GUI , porque é rápido e faz o que eu preciso. Frustrantemente, sua funcionalidade de pesquisa em vários arquivos nunca funciona para mim (note que Ctrl + F procura na página é bom). Esta não é uma grande perda; você pode obtê-lo para despejar todas as fontes para o disco com Ctrl + Alt + S para leitura com grep / vim / Eclipse etc.
Eu instalei assim:
wget http://jd.benow.ca/jd-gui/downloads/jd-gui-0.3.5.linux.i686.tar.gz
tar xzf jd-gui-0.3.5.linux.i686.tar.gz
sudo mv jd-gui /usr/local/bin/
sudo chown root:root /usr/local/bin/jd-gui
sudo chmod 755 /usr/local/bin/jd-gui
Usar algo assim:
jd-gui myjar.jar
Ctrl+Alt+S; pick your path & save
Alt+F4
jar xf <path>/myjar.src.zip
Note, entretanto, que o JD-GUI não possui interface CLI. Se você souber de um bom decompilador CLI, eu ficaria muito interessado em ouvi-lo (existe JAD, mas AFAIK que suporta apenas Java & lt; 1.5).