Class JarUtils

java.lang.Object
nonapi.io.github.classgraph.utils.JarUtils

public final class JarUtils extends Object
Jarfile utilities.
  • Field Details

    • URL_SCHEME_PATTERN

      public static final Pattern 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.
  • Method Details

    • smartPathSplit

      public 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. "http://domain/jar1.jar:http://domain/jar2.jar".
      Parameters:
      pathStr - The path to split.
      scanSpec - the scan spec
      Returns:
      The path element substrings.
    • smartPathSplit

      public static String[] smartPathSplit(String pathStr, char separatorChar, ScanSpec scanSpec)
      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.
    • pathElementsToPathStr

      public static String pathElementsToPathStr(Object... pathElts)
      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

      public static String pathElementsToPathStr(Iterable<?> pathElts)
      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

      public static String leafName(String path)
      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

      public static String classfilePathToClassName(String classfilePath)
      Convert a classfile path to the corresponding class name.
      Parameters:
      classfilePath - the classfile path
      Returns:
      the class name
    • classNameToClassfilePath

      public static String classNameToClassfilePath(String className)
      Convert a class name to the corresponding classfile path.
      Parameters:
      className - the class name
      Returns:
      the classfile path
    • derivedAutomaticModuleName

      public static String derivedAutomaticModuleName(String jarPath)
      Derive automatic module name from jar name, using this algorithm.
      Parameters:
      jarPath - The jar path.
      Returns:
      The automatic module name.