# Class UriUtil

java.lang.Object
org.apache.tomcat.util.buf.UriUtil

public final class UriUtil extends Object
Utility class for working with URIs and URLs.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static URL`
  `buildJarSafeUrl(File file)`
  `static URL`
  `buildJarUrl(File jarFile)`
  `static URL`
  `buildJarUrl(File jarFile, String entryPath)`
  `static URL`
  `buildJarUrl(String fileUrlString)`
  `static URL`
  `buildJarUrl(String fileUrlString, String entryPath)`
  `static String`
  `getWarSeparator()`
  `static boolean`
  `hasScheme(CharSequence uri)`
  Determine if a URI string has a `scheme` component.
  `static boolean`
  `isAbsoluteURI(String path)`
  Does the provided path start with `file:/` or `<protocol>://`.
  `static URI`
  `resolve(URI base, String target)`
  Replicates the behaviour of `URI.resolve(String)` and adds support for URIs of the form `jar:file:/...` .
  `static URL`
  `warToJar(URL warUrl)`
  Convert a URL of the form `war:file:...` to `jar:file:...`.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### hasScheme

    public static boolean hasScheme(CharSequence uri)
    Determine if a URI string has a `scheme` component.
    Parameters:
      `uri` - The URI to test
    Returns:
      `true` if a scheme is present, otherwise {code @false}

  - ### buildJarUrl

    public static URL buildJarUrl(File jarFile) throws MalformedURLException
    Throws:
      `MalformedURLException`

  - ### buildJarUrl

    public static URL buildJarUrl(File jarFile, String entryPath) throws MalformedURLException
    Throws:
      `MalformedURLException`

  - ### buildJarUrl

    public static URL buildJarUrl(String fileUrlString) throws MalformedURLException
    Throws:
      `MalformedURLException`

  - ### buildJarUrl

    public static URL buildJarUrl(String fileUrlString, String entryPath) throws MalformedURLException
    Throws:
      `MalformedURLException`

  - ### buildJarSafeUrl

    public static URL buildJarSafeUrl(File file) throws MalformedURLException
    Throws:
      `MalformedURLException`

  - ### warToJar

    public static URL warToJar(URL warUrl) throws MalformedURLException
    Convert a URL of the form `war:file:...` to `jar:file:...`.
    Parameters:
      `warUrl` - The WAR URL to convert
    Returns:
      The equivalent JAR URL
    Throws:
      `MalformedURLException` - If the conversion fails

  - ### getWarSeparator

    public static String getWarSeparator()

  - ### isAbsoluteURI

    public static boolean isAbsoluteURI(String path)
    Does the provided path start with `file:/` or `<protocol>://`.
    Parameters:
      `path` - The path to test
    Returns:
      `true` if the supplied path starts with one of the recognised sequences.

  - ### resolve

    public static URI resolve(URI base, String target) throws MalformedURLException, URISyntaxException
    Replicates the behaviour of `URI.resolve(String)` and adds support for URIs of the form `jar:file:/...` .
    Parameters:
      `base` - The base URI to resolve against
      `target` - The path to resolve
    Returns:
      The resulting URI as per `URI.resolve(String)`
    Throws:
      `MalformedURLException` - If the base URI cannot be converted to a URL
      `URISyntaxException` - If the resulting URL cannot be converted to a URI