/* * This file is part of JGAP. * * JGAP offers a dual license model containing the LGPL as well as the MPL. * * For licensing information please see the file license.txt included with JGAP * or have a look at the top of class org.jgap.Chromosome which representatively * includes the JGAP license policy applicable for any file delivered with JGAP. */ package org.jgap.util; /** * A class loader for loading jar files, both local and remote. * * @author Klaus Meffert (adapted from * http://java.sun.com/docs/books/tutorial/deployment/jar/apiindex.html) * @since 3.2 */ public class JarClassLoader extends MultiClassLoader { /** String containing the CVS revision. Read out via reflection!*/ private final static String CVS_REVISION = "$Revision: 1.6 $"; private JarResources m_jarResources; public JarClassLoader(final String a_jarName) { // Create the JarResource and suck in the .jar file. m_jarResources = new JarResources(a_jarName); } protected byte[] loadClassBytes(final String a_className) { // Support the MultiClassLoader's class name munging facility. String className = formatClassName(a_className); // Attempt to get the class data from the JarResource. return (m_jarResources.getResource(className)); } }