How to unzip/decompress a Java JAR file
I've received a number of searches from Google for "how to unzip a JAR file", so I thought I'd actually write something to help those folks.
Fortunately, this is quite straightforward when you know that JAR files are actually ZIP files! This means we're able to do this using the unzip
command:
$ unzip ~/.m2/repository/org/springframework/boot/spring-boot/2.2.4.RELEASE/spring-boot-2.2.4.RELEASE.jar
Archive: ~/.m2/repository/org/springframework/boot/spring-boot/2.2.4.RELEASE/spring-boot-2.2.4.RELEASE.jar
inflating: META-INF/MANIFEST.MF
creating: org/
creating: org/springframework/
creating: org/springframework/boot/
creating: org/springframework/boot/liquibase/
creating: org/springframework/boot/convert/
creating: org/springframework/boot/origin/
creating: org/springframework/boot/task/
creating: org/springframework/boot/reactor/
...
And we're also able to list the JAR file with unzip -l
, and also get specific files out:
% unzip ~/.m2/repository/org/springframework/boot/spring-boot/2.2.4.RELEASE/spring-boot-2.2.4.RELEASE.jar org/springframework/boot/context/event/ApplicationPreparedEvent.class
Archive: ~/.m2/repository/org/springframework/boot/spring-boot/2.2.4.RELEASE/spring-boot-2.2.4.RELEASE.jar
inflating: org/springframework/boot/context/event/ApplicationPreparedEvent.class