public class ClassUtilities
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
static java.net.URL |
getResource(java.lang.String spec)
Get the resource.
|
static java.util.List |
jarURLDirectories(java.net.URL jarURL)
Return the directories in a jar URI, relative to the jar entry,
if any. .
|
static java.net.URL |
jarURLEntryResource(java.lang.String jarURLString)
Lookup a jar URL and return the resource.
|
static java.lang.String |
lookupClassAsResource(java.lang.String necessaryClass)
Given a dot separated classname, return the jar file or directory
where the class can be found.
|
static java.net.URL |
sourceResource(java.lang.String sourceURLString)
Lookup a URL in the classpath, but search up the classpath
for directories named src.
|
public static java.util.List jarURLDirectories(java.net.URL jarURL) throws java.io.IOException
jar:file:///foo/bar.jar/!/bif/baz
, which means that
the jar file /foo/bar.jar has a directory or file name bif/baz.
If such a file is passed to this method, then any directories
in the jar file directory bif/baz will be returned.jarURL
- The Jar URL for which we are to look for directories.java.io.IOException
- If opening the connection fails or if
getting the jar file from the connection failspublic static java.net.URL jarURLEntryResource(java.lang.String jarURLString) throws java.io.IOException
file://./foo.jar!/a/b/c.class
is a jar URL that
refers to the a/b/c.class
resource in
foo.jar
. If this method is called with
file://./foo.jar!/a/b/c.class
then it will return
a/b/c.class
if a/b/c.class
can be
found as a resource in the class loader that loaded this class
(ptolemy.util.ClassUtilities). If the resource cannot be found,
then an IOException is thrown. If the jarURLString parameter
does not contain !/
, then return null.
Note that everything before the !/
is removed before
searching the classpath.
This method is necessary because Web Start uses jar URL, and there are some cases where if we have a jar URL, then we may need to strip off the jar:url!/ part so that we can search for the {entry} as a resource.
jarURLString
- The string containing the jar URL.
If no resource is found and the string contains a "#" then the text
consisting of the # and the remaining text is removed and the shorter
string is used as a search pattern.!/
, then return null.java.io.IOException
- If this method cannot convert the specification
to a URL.JarURLConnection
public static java.net.URL sourceResource(java.lang.String sourceURLString) throws java.io.IOException
Before calling this method, call ClassLoader.getResource() because ClassLoader.getResource() is presumably faster.
sourceURLString
- The string containing the URL.!/
, then return null.java.io.IOException
- If this method cannot convert the specification
to a URL.JarURLConnection
public static java.net.URL getResource(java.lang.String spec)
spec
- The string to be found as a resource.public static java.lang.String lookupClassAsResource(java.lang.String necessaryClass)
necessaryClass
- The dot separated class name, for example
"ptolemy.util.ClassUtilities"