import java.net.URL;
import java.lang.reflect.Method;
-public class ClassPathHacker {
-
- private static final Class[] PARAMETERS = new Class[] { URL.class };
+/**
+ * Utility for working with the class loader. Based on the ClassPathHacker
+ * example found on the internet.
+ */
+public class ClassLoaderUtils {
+
+ // No logging in this class to keep the required class libraries
+ // limited to the standard java classes. This allows use of the
+ // utilities in an environment with a very limited classpath.
private static final String JAR_SUFFIX = ".jar";
+ /**
+ * Adds all jars in the given directory to the class path.
+ * @param aDirectory Directory.
+ * @throws IOException
+ */
public static void addJarsInDirectory(File aDirectory) throws IOException {
System.out.println("directory '" + aDirectory + "'");
}
}
- public static void addFile(String s) throws IOException {
- File f = new File(s);
+ /**
+ * Adds a file to the classpath.
+ * @param aFilename Filename to add.
+ * @throws IOException
+ */
+ public static void addFile(String aFilename) throws IOException {
+ File f = new File(aFilename);
addFile(f);
}
- public static void addFile(File f) throws IOException {
- addURL(f.toURL());
+ /**
+ * Adds a file to the classpath.
+ * @param aFile File to add.
+ * @throws IOException
+ */
+ public static void addFile(File aFile) throws IOException {
+ addURL(aFile.toURL());
}
- public static void addURL(URL u) throws IOException {
+ /**
+ * Adds a url to the classpath.
+ * @param aUrl Url to add.
+ * @throws IOException
+ */
+ public static void addURL(URL aUrl) throws IOException {
URLClassLoader sysloader = (URLClassLoader) ClassLoader
.getSystemClassLoader();
Class sysclass = URLClassLoader.class;
try {
- Method method = sysclass.getDeclaredMethod("addURL", PARAMETERS);
+ Method method = sysclass.getDeclaredMethod("addURL", new Class[]{ URL.class } );
method.setAccessible(true);
- method.invoke(sysloader, new Object[] { u });
+ method.invoke(sysloader, new Object[] { aUrl });
} catch (Throwable t) {
t.printStackTrace();
throw new IOException(