net.yagga.util
Class JarClassLoader

java.lang.Object
  |
  +--java.lang.ClassLoader
        |
        +--net.yagga.util.JarClassLoader

class JarClassLoader
extends java.lang.ClassLoader

A class loader for loading jar files, both local and remote.


Inner classes inherited from class java.lang.ClassLoader
java.lang.ClassLoader.NativeLibrary
 
Field Summary
private  java.util.Hashtable htSizes
           
private  java.lang.String jarFile
           
 
Fields inherited from class java.lang.ClassLoader
bootstrapClassPath, classes, defaultDomain, defaultPermissions, domains, getClassLoaderPerm, initialized, loadedLibraryNames, nativeLibraries, nativeLibraryContext, nocerts, package2certs, packages, parent, scl, sclSet, sys_paths, systemNativeLibraries, usr_paths
 
Constructor Summary
JarClassLoader(java.lang.String jarF)
           
 
Method Summary
protected  java.lang.Class findClass(java.lang.String className)
           
 byte[] getClassFromJar(java.lang.String cl)
           
private  java.util.jar.JarInputStream getJIS(java.lang.String jarFile)
           
 java.lang.String getMainClassName()
          Returns the name of the jar file main class, or null if no "Main-Class" manifest attributes was defined.
private  void initSizes()
           
 void invokeClass(java.lang.String name, java.lang.String[] args)
          Invokes the application in this jar file given the name of the main class and an array of arguments.
private  java.io.InputStream openResource(java.lang.String filename)
           
 
Methods inherited from class java.lang.ClassLoader
, addClass, check, checkCerts, checkPackageAccess, compareCerts, defineClass, defineClass, defineClass, defineClass0, definePackage, findBootstrapClass, findBootstrapClass0, findLibrary, findLoadedClass, findNative, findResource, findResources, findSystemClass, getBootstrapClassPath, getBootstrapResource, getBootstrapResources, getCallerClassLoader, getDefaultDomain, getGetClassLoaderPerm, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, initializePath, isAncestor, loadClass, loadClass, loadClassInternal, loadLibrary, loadLibrary0, resolveClass, resolveClass0, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

jarFile

private java.lang.String jarFile

htSizes

private java.util.Hashtable htSizes
Constructor Detail

JarClassLoader

public JarClassLoader(java.lang.String jarF)
Method Detail

getMainClassName

public java.lang.String getMainClassName()
                                  throws java.io.IOException
Returns the name of the jar file main class, or null if no "Main-Class" manifest attributes was defined.

invokeClass

public void invokeClass(java.lang.String name,
                        java.lang.String[] args)
                 throws java.lang.ClassNotFoundException,
                        java.lang.NoSuchMethodException,
                        java.lang.reflect.InvocationTargetException
Invokes the application in this jar file given the name of the main class and an array of arguments. The class must define a static method "main" which takes an array of String arguemtns and is of return type "void".

findClass

protected java.lang.Class findClass(java.lang.String className)
                             throws java.lang.ClassNotFoundException
Overrides:
findClass in class java.lang.ClassLoader

initSizes

private void initSizes()

getClassFromJar

public byte[] getClassFromJar(java.lang.String cl)

getJIS

private java.util.jar.JarInputStream getJIS(java.lang.String jarFile)

openResource

private java.io.InputStream openResource(java.lang.String filename)