Java has a class named ClassLoader that allows you to define a class
from an array of bytes:
class SimpleClassLoader extends ClassLoader {
public Class getClass (String name) {
Class theClass = null;
try {
File f = new File(name);
InputStream is = new FileInputStream(f);
int bufsize = (int) f.length();
byte buf [] = new byte[bufsize];
is.read(buf, 0, bufsize);
is.close();
theClass = defineClass (null, buf, 0, buf.length);
} catch (Exception e) {
System.err.println("Error during load " + e);
System.exit(1);
}
return theClass;
}
}
Once you have a class, you can create instances, or execute methods.