RFR: JDK-8159172 - Update usage of jlink/jimage/jmod to show option patterns
Jim Laskey (Oracle)
james.laskey at oracle.com
Thu Jun 23 18:40:33 UTC 2016
http://cr.openjdk.java.net/~jlaskey/8159172/webrev/index.html <http://cr.openjdk.java.net/~jlaskey/8159172/webrev/index.html>
https://bugs.openjdk.java.net/browse/JDK-8159172 <https://bugs.openjdk.java.net/browse/JDK-8159172>
This is an initial clean up of help for jlink/jimage/jmod. More work is required (like unifying the options tooling), but comments welcome. — Jim
/Projects/jdk9-dev% jmod --help
Usage: jmod (create|list|describe|hash) <OPTIONS> <jmod-file>
Main operation modes:
create - Creates a new jmod archive
list - Prints the names of all the entries
describe - Prints the module details
hash - Records hashes of tied modules.
Option Description
------ -----------
--class-path <path> Application jar files|dir containing
classes
--cmds <path> Location of native commands
--config <path> Location of user-editable config files
--dry-run Dry run of hash mode
--exclude <pattern-list> Exclude files matching the supplied
comma separated pattern list, each
element using one the following
forms: <glob-pattern>, glob:<glob-
pattern> or regex:<regex-pattern>
--hash-modules <regex-pattern> Compute and record hashes to tie a
packaged module with modules
matching the given <regex-pattern>
and depending upon it directly or
indirectly. The hashes are recorded
in the JMOD file being created, or a
JMOD file or modular JAR on the
module path specified the jmod hash
command.
--help Print this usage message
--libs <path> Location of native libraries
--main-class <class-name> Main class
--module-version <module-version> Module version
--modulepath, --mp <path> Module path
--os-arch <os-arch> Operating system architecture
--os-name <os-name> Operating system name
--os-version <os-version> Operating system version
--version Version information
@<filename> Read options from the specified file
/Projects/jdk9-dev% jimage --help
Usage: jimage <extract | info | list | verify> <options> jimage...
extract - Extract all jimage entries and place in a directory specified
by the --dir=<directory> (default=.) option.
info - Prints detailed information contained in the jimage header.
list - Prints the names of all the entries in the jimage. When used with
--verbose, list will also print entry size and offset attributes.
verify - Reports on any .class entries that dont verify as classes.
Possible options include:
--dir Target directory for extract directive
--include <pattern-list> Pattern list for filtering list or extract entries.w
--fullversion Print full version information
--help Print usage message
--verbose Listing prints entry size and offset attributes
--version Print version information
For options requiring a <pattern-list>, the value will be a comma separated list of elements each using one the following forms:
<glob-pattern>
glob:<glob-pattern>
regex:<regex-pattern>
@<filename> where filename is the name of a file containing patterns to be used, one pattern per line
/Projects/jdk9-dev% jlink --list-plugins
List of available plugins:
Plugin Name: class-optim
Option: --class-optim=<all|forName-folding>[:log=<log file>]
Description: Class optimization. Warning: This plugin is experimental.
An optional <log file> can be specified to log applied optimizations.
Plugin Name: compress
Option: --compress=<0|1|2>[:filter=<pattern-list>]
Description: Compress all resources in the output image.
Level 0: constant string sharing
Level 1: ZIP
Level 2: both.
An optional <pattern-list> filter can be specified to list the pattern of
files to be included.
Plugin Name: copy-files
Option: --copy-files=<List of <file path>=<image target> to copy to the image>.
Description: If files to copy are not absolute path, JDK home dir is used.
e.g.: jrt-fs.jar,LICENSE,/home/me/myfile.txt=somewehere/conf.txt
Plugin Name: exclude-files
Option: --exclude-files=<pattern-list> of files to exclude
Description: Specify files to exclude. e.g.: **.java,glob:/java.base/native/client/**
Plugin Name: exclude-resources
Option: --exclude-resources=<pattern-list> resources to exclude
Description: Specify resources to exclude. e.g.: **.jcov,glob:**/META-INF/**
Plugin Name: generate-jli-classes
Option: --generate-jli-classes=<bmh[:bmh-species=LL,L3,...]>
Description: Concrete java.lang.invoke classes to generate
Plugin Name: include-locales
Option: --include-locales=<langtag>[,<langtag>]*
Description: BCP 47 language tags separated by a comma, allowing locale matching
defined in RFC 4647. e.g.: en,ja,*-IN
Plugin Name: installed-modules
Option: --installed-modules
Description: Fast loading of module descriptors (always enabled)
Plugin Name: order-resources
Option: --order-resources=<pattern-list> of paths in priority order. If a @file
is specified, then each line should be an exact match for the path to be ordered
Description: Order resources. e.g.: **/module-info.class, at classlist,/java.base/java/lang/**
Plugin Name: release-info
Option: --release-info=<file>|add:<key1>=<value1>:<key2>=<value2>:...|del:<key list>
Description: <file> option is to load release properties from the supplied file.
add: is to add properties to the release file.
Any number of <key>=<value> pairs can be passed.
del: is to delete the list of keys in release file.
Plugin Name: strip-debug
Option: --strip-debug
Description: Strip debug information from the output image
Plugin Name: strip-native-commands
Option: --strip-native-commands
Description: Exclude native commands (such as java/java.exe) from the image
Plugin Name: vm
Option: --vm=<client|server|minimal|all>
Description: Select the HotSpot VM in the output image. Default is all
For options requiring a <pattern-list>, the value will be a comma separated list of elements each using one the following forms:
<glob-pattern>
glob:<glob-pattern>
regex:<regex-pattern>
@<filename> where filename is the name of a file containing patterns to be used, one pattern per line
More information about the jdk9-dev
mailing list