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