Class JarUtils
java.lang.Object
nonapi.io.github.classgraph.utils.JarUtils
Jarfile utilities.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Pattern
The Constant DASH_VERSION.private static final Pattern
The Constant LEADING_DOTS.private static final Pattern
The Constant NON_ALPHANUM.private static final Pattern
The Constant REPEATING_DOTS.private static final Pattern
The Constant TRAILING_DOTS.private static final int[]
The position of the colon characters in the corresponding UNIX_NON_PATH_SEPARATORS array entry.private static final String[]
On everything but Windows, where the path separator is ':', need to treat the colon in these substrings as non-separators, when at the beginning of the string or following a ':'.static final Pattern
Check if a path has a URL scheme at the beginning. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static void
appendPathElt
(Object pathElt, StringBuilder buf) Append a path element to a buffer.static String
classfilePathToClassName
(String classfilePath) Convert a classfile path to the corresponding class name.static String
classNameToClassfilePath
(String className) Convert a class name to the corresponding classfile path.static String
derivedAutomaticModuleName
(String jarPath) Derive automatic module name from jar name, using this algorithm.static String
Returns the leafname of a path, after first stripping off everything after the first '!', if present.static String
pathElementsToPathStr
(Iterable<?> pathElts) Get a set of path elements as a string, from an array of objects (e.g.static String
pathElementsToPathStr
(Object... pathElts) Get a set of path elements as a string, from an array of objects (e.g.static String[]
smartPathSplit
(String pathStr, char separatorChar, ScanSpec scanSpec) Split a path on the given separator char.static String[]
smartPathSplit
(String pathStr, ScanSpec scanSpec) Split a path on File.pathSeparator (':' on Linux, ';' on Windows), but also allow for the use of URLs with protocol specifiers, e.g.
-
Field Details
-
URL_SCHEME_PATTERN
Check if a path has a URL scheme at the beginning. Require at least 2 chars in a URL scheme, so that Windows drive designations don't get treated as URL schemes. -
DASH_VERSION
The Constant DASH_VERSION. -
NON_ALPHANUM
The Constant NON_ALPHANUM. -
REPEATING_DOTS
The Constant REPEATING_DOTS. -
LEADING_DOTS
The Constant LEADING_DOTS. -
TRAILING_DOTS
The Constant TRAILING_DOTS. -
UNIX_NON_PATH_SEPARATORS
On everything but Windows, where the path separator is ':', need to treat the colon in these substrings as non-separators, when at the beginning of the string or following a ':'. -
UNIX_NON_PATH_SEPARATOR_COLON_POSITIONS
private static final int[] UNIX_NON_PATH_SEPARATOR_COLON_POSITIONSThe position of the colon characters in the corresponding UNIX_NON_PATH_SEPARATORS array entry.
-
-
Constructor Details
-
JarUtils
private JarUtils()Constructor.
-
-
Method Details
-
smartPathSplit
Split a path on File.pathSeparator (':' on Linux, ';' on Windows), but also allow for the use of URLs with protocol specifiers, e.g. "http://domain/jar1.jar:http://domain/jar2.jar".- Parameters:
pathStr
- The path to split.scanSpec
- the scan spec- Returns:
- The path element substrings.
-
smartPathSplit
Split a path on the given separator char. If the separator char is ':', also allow for the use of URLs with protocol specifiers, e.g. "http://domain/jar1.jar:http://domain/jar2.jar".- Parameters:
pathStr
- The path to split.separatorChar
- The separator char to use.scanSpec
- the scan spec- Returns:
- The path element substrings.
-
appendPathElt
Append a path element to a buffer.- Parameters:
pathElt
- the path elementbuf
- the buf
-
pathElementsToPathStr
Get a set of path elements as a string, from an array of objects (e.g. of String, File or URL type, whose toString() method will be called to get the path component), and return the path as a single string delineated with the standard path separator character.- Parameters:
pathElts
- The path elements.- Returns:
- The delimited path formed out of the path elements.
-
pathElementsToPathStr
Get a set of path elements as a string, from an array of objects (e.g. of String, File or URL type, whose toString() method will be called to get the path component), and return the path as a single string delineated with the standard path separator character.- Parameters:
pathElts
- The path elements.- Returns:
- The delimited path formed out of the path elements, after calling each of their toString() methods.
-
leafName
Returns the leafname of a path, after first stripping off everything after the first '!', if present.- Parameters:
path
- A file path.- Returns:
- The leafname of the path.
-
classfilePathToClassName
Convert a classfile path to the corresponding class name.- Parameters:
classfilePath
- the classfile path- Returns:
- the class name
-
classNameToClassfilePath
Convert a class name to the corresponding classfile path.- Parameters:
className
- the class name- Returns:
- the classfile path
-
derivedAutomaticModuleName
Derive automatic module name from jar name, using this algorithm.- Parameters:
jarPath
- The jar path.- Returns:
- The automatic module name.
-