Sub Class_Globals
'    Private fx As JFX
    Dim URLClassLoader As JavaObject
    Dim mLoaded As  Boolean = False
End Sub
'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize
 
End Sub
'Loads a jar to the classpath
Public Sub JarLoad(jarFilePath As String, ClassName As String, ExceptionList As List ) As Object', JavaClass As String' As JavaObject
    mLoaded = False
    Try
        URLClassLoader =  Me.as(JavaObject).RunMethod("loadJar",Array(File.GetUri(jarFilePath,""),ClassName))
        Dim LoadedClass As JavaObject = Me.as(JavaObject).RunMethod("loadClass",Array(URLClassLoader,ClassName))
    Catch
        ExceptionList.Add(LastException.Message)
        Return Null
    End Try
    mLoaded = True
    Return LoadedClass
 
End Sub
Public Sub JarClose
    URLClassLoader.RunMethod("close",Null)
    Dim URLClassLoader As JavaObject
    mLoaded = False
    Log("Unloaded")
End Sub
Public Sub getIsLoaded As Boolean
    Return mLoaded
End Sub
#if java
import java.net.URL;
import java.net.URLClassLoader;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.lang.ClassNotFoundException;
import java.lang.ClassCastException;
import java.lang.NoClassDefFoundError;
public static URLClassLoader loadJar(String jarPath, String className) throws Exception{
 
    URL[] jarURL = new URL[1];
    try{
        jarURL[0] = new URL(jarPath);
    } catch(MalformedURLException e){
        throw new RuntimeException("MalformedURLException");
    }
 
    URLClassLoader urlClassLoader = new URLClassLoader(jarURL);
 
    return urlClassLoader;
}
public static Object loadClass(URLClassLoader urlClassLoader, String className) throws Exception{
Class<?> loadedClass = null;
    try{
        loadedClass = urlClassLoader.loadClass(className);
    } catch(ClassNotFoundException e){
        throw new RuntimeException("ClassNotFound");
    } catch(ClassCastException e){
        throw new RuntimeException("ClassCastException");
    }catch(NoClassDefFoundError e) {
        throw new RuntimeException("NoClassDefFound");
    }
    return loadedClass;
}
#End If