public abstract class ResourceUtils extends Object
Consider using Spring's Resource abstraction in the core package
 for handling all kinds of file resources in a uniform manner.
 ResourceLoader's getResource()
 method can resolve any location to a Resource
 object, which in turn allows one to obtain a java.io.File in the
 file system through its getFile() method.
Resource, 
ClassPathResource, 
FileSystemResource, 
UrlResource, 
ResourceLoader| Modifier and Type | Field and Description | 
|---|---|
static String | 
CLASSPATH_URL_PREFIX
Pseudo URL prefix for loading from the class path: "classpath:" 
 | 
static String | 
FILE_URL_PREFIX
URL prefix for loading from the file system: "file:" 
 | 
static String | 
JAR_FILE_EXTENSION
File extension for a regular jar file: ".jar" 
 | 
static String | 
JAR_URL_PREFIX
URL prefix for loading from a jar file: "jar:" 
 | 
static String | 
JAR_URL_SEPARATOR
Separator between JAR URL and file path within the JAR: "!/" 
 | 
static String | 
URL_PROTOCOL_FILE
URL protocol for a file in the file system: "file" 
 | 
static String | 
URL_PROTOCOL_JAR
URL protocol for an entry from a jar file: "jar" 
 | 
static String | 
URL_PROTOCOL_VFS
URL protocol for a general JBoss VFS resource: "vfs" 
 | 
static String | 
URL_PROTOCOL_VFSFILE
URL protocol for a JBoss file system resource: "vfsfile" 
 | 
static String | 
URL_PROTOCOL_VFSZIP
URL protocol for an entry from a JBoss jar file: "vfszip" 
 | 
static String | 
URL_PROTOCOL_WAR
URL protocol for an entry from a war file: "war" 
 | 
static String | 
URL_PROTOCOL_WSJAR
URL protocol for an entry from a WebSphere jar file: "wsjar" 
 | 
static String | 
URL_PROTOCOL_ZIP
URL protocol for an entry from a zip file: "zip" 
 | 
static String | 
WAR_URL_PREFIX
URL prefix for loading from a war file on Tomcat: "war:" 
 | 
static String | 
WAR_URL_SEPARATOR
Special separator between WAR URL and jar part on Tomcat 
 | 
| Constructor and Description | 
|---|
ResourceUtils()  | 
| Modifier and Type | Method and Description | 
|---|---|
static URL | 
extractArchiveURL(URL jarUrl)
Extract the URL for the outermost archive from the given jar/war URL
 (which may point to a resource in a jar file or to a jar file itself). 
 | 
static URL | 
extractJarFileURL(URL jarUrl)
Extract the URL for the actual jar file from the given URL
 (which may point to a resource in a jar file or to a jar file itself). 
 | 
static File | 
getFile(String resourceLocation)
Resolve the given resource location to a  
java.io.File,
 i.e. | 
static File | 
getFile(URI resourceUri)
Resolve the given resource URI to a  
java.io.File,
 i.e. | 
static File | 
getFile(URI resourceUri,
       String description)
Resolve the given resource URI to a  
java.io.File,
 i.e. | 
static File | 
getFile(URL resourceUrl)
Resolve the given resource URL to a  
java.io.File,
 i.e. | 
static File | 
getFile(URL resourceUrl,
       String description)
Resolve the given resource URL to a  
java.io.File,
 i.e. | 
static URL | 
getURL(String resourceLocation)
Resolve the given resource location to a  
java.net.URL. | 
static boolean | 
isFileURL(URL url)
Determine whether the given URL points to a resource in the file system,
 i.e. 
 | 
static boolean | 
isJarFileURL(URL url)
Determine whether the given URL points to a jar file itself,
 that is, has protocol "file" and ends with the ".jar" extension. 
 | 
static boolean | 
isJarURL(URL url)
Determine whether the given URL points to a resource in a jar file. 
 | 
static boolean | 
isUrl(String resourceLocation)
Return whether the given resource location is a URL:
 either a special "classpath" pseudo URL or a standard URL. 
 | 
static URI | 
toURI(String location)
Create a URI instance for the given location String,
 replacing spaces with "%20" URI encoding first. 
 | 
static URI | 
toURI(URL url)
Create a URI instance for the given URL,
 replacing spaces with "%20" URI encoding first. 
 | 
static void | 
useCachesIfNecessary(URLConnection con)
Set the  
"useCaches" flag on the
 given connection, preferring false but leaving the
 flag at true for JNLP based resources. | 
public static final String CLASSPATH_URL_PREFIX
public static final String FILE_URL_PREFIX
public static final String JAR_URL_PREFIX
public static final String WAR_URL_PREFIX
public static final String URL_PROTOCOL_FILE
public static final String URL_PROTOCOL_JAR
public static final String URL_PROTOCOL_WAR
public static final String URL_PROTOCOL_ZIP
public static final String URL_PROTOCOL_WSJAR
public static final String URL_PROTOCOL_VFSZIP
public static final String URL_PROTOCOL_VFSFILE
public static final String URL_PROTOCOL_VFS
public static final String JAR_FILE_EXTENSION
public static final String JAR_URL_SEPARATOR
public static final String WAR_URL_SEPARATOR
public static boolean isUrl(String resourceLocation)
resourceLocation - the location String to checkCLASSPATH_URL_PREFIX, 
URLpublic static URL getURL(String resourceLocation) throws FileNotFoundException
java.net.URL.
 Does not check whether the URL actually exists; simply returns the URL that the given location would correspond to.
resourceLocation - the resource location to resolve: either a
 "classpath:" pseudo URL, a "file:" URL, or a plain file pathFileNotFoundException - if the resource cannot be resolved to a URLpublic static File getFile(String resourceLocation) throws FileNotFoundException
java.io.File,
 i.e. to a file in the file system.
 Does not check whether the file actually exists; simply returns the File that the given location would correspond to.
resourceLocation - the resource location to resolve: either a
 "classpath:" pseudo URL, a "file:" URL, or a plain file pathFileNotFoundException - if the resource cannot be resolved to
 a file in the file systempublic static File getFile(URL resourceUrl) throws FileNotFoundException
java.io.File,
 i.e. to a file in the file system.resourceUrl - the resource URL to resolveFileNotFoundException - if the URL cannot be resolved to
 a file in the file systempublic static File getFile(URL resourceUrl, String description) throws FileNotFoundException
java.io.File,
 i.e. to a file in the file system.resourceUrl - the resource URL to resolvedescription - a description of the original resource that
 the URL was created for (for example, a class path location)FileNotFoundException - if the URL cannot be resolved to
 a file in the file systempublic static File getFile(URI resourceUri) throws FileNotFoundException
java.io.File,
 i.e. to a file in the file system.resourceUri - the resource URI to resolveFileNotFoundException - if the URL cannot be resolved to
 a file in the file systempublic static File getFile(URI resourceUri, String description) throws FileNotFoundException
java.io.File,
 i.e. to a file in the file system.resourceUri - the resource URI to resolvedescription - a description of the original resource that
 the URI was created for (for example, a class path location)FileNotFoundException - if the URL cannot be resolved to
 a file in the file systempublic static boolean isFileURL(URL url)
url - the URL to checkpublic static boolean isJarURL(URL url)
url - the URL to checkpublic static boolean isJarFileURL(URL url)
url - the URL to checkpublic static URL extractJarFileURL(URL jarUrl) throws MalformedURLException
jarUrl - the original URLMalformedURLException - if no valid jar file URL could be extractedpublic static URL extractArchiveURL(URL jarUrl) throws MalformedURLException
In the case of a jar file nested within a war file, this will return a URL to the war file since that is the one resolvable in the file system.
jarUrl - the original URLMalformedURLException - if no valid jar file URL could be extractedextractJarFileURL(URL)public static URI toURI(URL url) throws URISyntaxException
url - the URL to convert into a URI instanceURISyntaxException - if the URL wasn't a valid URIURL.toURI()public static URI toURI(String location) throws URISyntaxException
location - the location String to convert into a URI instanceURISyntaxException - if the location wasn't a valid URIpublic static void useCachesIfNecessary(URLConnection con)
"useCaches" flag on the
 given connection, preferring false but leaving the
 flag at true for JNLP based resources.con - the URLConnection to set the flag on