How to use the command 'jar' (with examples)
The ‘jar’ command in Java is used to package Java applications or libraries into a .jar file. This file format allows for easier distribution and execution of Java programs. It can also be used to extract the contents of a .jar or .war file and display the contents of the file.
Use case 1: Recursively archive all files in the current directory into a .jar file
Code:
jar cf file.jar *
Motivation:
This use case is useful when you want to package all the files in the current directory into a single .jar file. This can be helpful when sharing the application or library with others, as it conveniently bundles all the necessary files into one archive.
Explanation:
- ‘jar’ - the name of the command
- ‘cf’ - the options used for creating a new .jar file
- ‘file.jar’ - the name of the output .jar file
- ‘*’ - a wildcard character representing all files in the current directory
Example output:
added manifest
adding: file1.txt
adding: file2.txt
adding: directory/
adding: directory/file3.txt
Use case 2: Unzip .jar/.war file to the current directory
Code:
jar -xvf file.jar
Motivation:
This use case is useful when you have a .jar or .war file and need to extract its contents. By using the ‘jar’ command with the appropriate options, you can easily unzip the file and access its contents for further analysis or modification.
Explanation:
- ‘jar’ - the name of the command
- ‘-xvf’ - the options used for extracting a .jar or .war file, with verbose output
- ‘file.jar’ - the path to the .jar or .war file you want to extract
Example output:
extracted: file1.txt
extracted: file2.txt
extracted: directory/
extracted: directory/file3.txt
Use case 3: List a .jar/.war file content
Code:
jar tf path/to/file.jar
Motivation:
This use case is useful when you want to quickly check the contents of a .jar or .war file. By using the ‘jar’ command with the appropriate options, you can list all the files and directories contained within the archive.
Explanation:
- ‘jar’ - the name of the command
- ’tf’ - the options used for listing the content of a .jar or .war file
- ‘path/to/file.jar’ - the path to the .jar or .war file you want to list the contents of
Example output:
META-INF/
META-INF/MANIFEST.MF
file1.txt
file2.txt
directory/
directory/file3.txt
Use case 4: List a .jar/.war file content with verbose output
Code:
jar tvf path/to/file.jar
Motivation:
This use case is similar to the previous one, but with the addition of verbose output. By using the ‘jar’ command with the ‘-tvf’ options, you can get a more detailed listing of the contents of a .jar or .war file, including file permissions, sizes, and timestamps.
Explanation:
- ‘jar’ - the name of the command
- ’tvf’ - the options used for listing the content of a .jar or .war file with verbose output
- ‘path/to/file.jar’ - the path to the .jar or .war file you want to list the contents of
Example output:
0 Thu Jan 01 00:00:00 GMT 1970 META-INF/
144 Sat Dec 18 10:22:08 GMT 2021 META-INF/MANIFEST.MF
12 Sat Dec 18 10:22:08 GMT 2021 file1.txt
12 Sat Dec 18 10:22:08 GMT 2021 file2.txt
0 Sat Dec 18 10:22:12 GMT 2021 directory/
16 Sat Dec 18 10:22:12 GMT 2021 directory/file3.txt
Conclusion:
The ‘jar’ command is a powerful tool for working with .jar and .war files in Java. It allows you to create archives, extract contents, and list the files within the archives. By understanding and utilizing the various options available, you can efficiently package and manage your Java applications or libraries.