Class URLClassPath

java.lang.Object
edu.umd.cs.findbugs.ba.URLClassPath
All Implemented Interfaces:
Serializable, AutoCloseable

public class URLClassPath extends Object implements AutoCloseable, Serializable
A work-alike class to use instead of BCEL's ClassPath class. The main difference is that URLClassPath can load classfiles from URLs.
Author:
David Hovemeyer
See Also:
  • Constructor Details

    • URLClassPath

      public URLClassPath()
      Constructor. Creates a classpath with no elements.
  • Method Details

    • addURL

      public void addURL(String fileName) throws IOException
      Add given filename/URL to the classpath. If no URL protocol is given, the filename is assumed to be a local file or directory. Remote directories must be specified with a "/" character at the end of the URL.
      Parameters:
      fileName - filename or URL of codebase (directory or archive file)
      Throws:
      IOException - if entry is invalid or does not exist
    • getClassPath

      public String getClassPath()
      Return the classpath string.
      Returns:
      the classpath string
    • lookupClass

      public org.apache.bcel.classfile.JavaClass lookupClass(String className) throws ClassNotFoundException
      Look up a class from the classpath.
      Parameters:
      className - name of class to look up
      Returns:
      the JavaClass object for the class
      Throws:
      ClassNotFoundException - if the class couldn't be found
    • close

      public void close()
      Close all underlying resources.
      Specified by:
      close in interface AutoCloseable
    • getURLProtocol

      public static String getURLProtocol(String urlString)
      Get the URL protocol of given URL string.
      Parameters:
      urlString - the URL string
      Returns:
      the protocol name ("http", "file", etc.), or null if there is no protocol
    • getFileExtension

      public static String getFileExtension(String fileName)
      Get the file extension of given fileName.
      Returns:
      the file extension, or null if there is no file extension
    • isArchiveExtension

      public static boolean isArchiveExtension(String fileExtension)
      Determine if given file extension indicates an archive file.
      Parameters:
      fileExtension - the file extension (e.g., ".jar")
      Returns:
      true if the file extension indicates an archive, false otherwise