Java Tools Tutorials - Herong's Tutorial Examples - v6.24, by Herong Yang
"jar -C" - Changing Input Directory
This section provides a tutorial example on how to 'jar --create -C ...' to change input directory when creating JAR files.
When create a new JAR file with the "jar --create" command, you can use the "-C ..." option to change the input directory from the current directory to the give directory.
The "-C ..." allows us to create a JAR file with all class files organized in a Java package directory tree.
To test this, I created the following Java source code, TempratureConvertorBean.java:
/* TempratureConvertorBean.java
* Copyright (c) 2005 HerongYang.com. All Rights Reserved.
*/
package com.herongyang;
public class TempratureConvertorBean {
private double celsius = 0.0;
private double fahrenheit = 32.0;
public double getCelsius() {
return celsius;
}
public void setCelsius(double c) {
celsius = c;
fahrenheit = 1.8*c + 32.0;
}
public double getFahrenheit() {
return fahrenheit;
}
public void setFahrenheit(double f) {
fahrenheit = f;
celsius = (f-32.0)/1.8;
}
public String getInfo() {
return new String("My TempraturConvertorBean - Version 1.00");
}
}
After compiling this source code, I got a Java package directory tree for the Java class file:
herong> mkdir .\cls
herong> javac -d .\cls TempratureConvertorBean.java
herong> tree /F .\cls
.\CLS
|---com
|---herongyang
TempratureConvertorBean.class
I used the "jar --create -C ..." command to create a JAR file, herong.jar:
herong> jar --create --verbose --file herong.jar -C .\cls .\com
added manifest
adding: com/(in = 0) (out= 0)(stored 0%)
adding: com/herongyang/(in = 0) (out= 0)(stored 0%)
adding: com/herongyang/TempratureConvertorBean.class(in = 806) (out= 462)
herong> jar --list --verbose --file herong.jar
0 ... 2018 META-INF/
66 ... 2018 META-INF/MANIFEST.MF
0 ... 2018 com/
0 ... 2018 com/herongyang/
806 ... 2018 com/herongyang/TempratureConvertorBean.class
Notice that:
I deleted ".\cls" directory including class files, because all classes are stored in the herong.jar now.
Table of Contents
javac - The Java Program Compiler
java - The Java Program Launcher
JAR - Java Archive File Format
jar - JAR File Tool Command and Options
"jar --create" - Creating New JAR File
"jar --list" - Listing Files in JAR File
"jar --extract" - Extracting Files from JAR File
Managing JAR Files with WinZIP
META-INF/MANIFEST.MF - JAR Manifest File
Adding META-INF/MANIFEST.MF to JAR Files
►"jar -C" - Changing Input Directory
Using JAR Files in Java Class Paths
"jar --update" - Updating Class Files in JAR
"jar --main-class" - Making JAR File Executable
"jar --module-version" - Updating Module Version in JAR
jpackage - Binary Package Builder
javadoc - The Java Document Generator
jdeps - The Java Class Dependency Analyzer
jdeprscan - The Java Deprecated API Scanner
jcmd - The JVM Diagnostic Tool
jconsole - Java Monitoring and Management Console
jstat - JVM Statistics Monitoring Tool
jhsdb - The Java HotSpot Debugger
jvisualvm (Java VisualVM) - JVM Visual Tool
javap - The Java Class File Disassembler
keytool - Public Key Certificate Tool
jrunscript - Script Code Shell
native2ascii - Native-to-ASCII Encoding Converter