Hi Leutz,
könnt ihr mir mal bitte sagen wie man eine Instanz von einer Klasse erstellt die man mit dem URLClassLoader geladen hat? Ich hab folgendes schon probiert:
Raus kommt dabei eine IllegalAccessException. Jedoch finde ich schonmal komisch, dass keine Konstruktoren angezeigt werden. Die Methoden werden alle angezeigt.
Hier der vollständigkeit halber die Klasse die ich als letztes zu Testwecken laden wollte:
Bitte helft mir!
könnt ihr mir mal bitte sagen wie man eine Instanz von einer Klasse erstellt die man mit dem URLClassLoader geladen hat? Ich hab folgendes schon probiert:
Code:
try
{
URL url = new URL( "jar:" + new File( "Models" + File.separator + modelsList.get(num) ).toURL() + "!/" );
URLClassLoader cl = new URLClassLoader( new URL[]{ url } );
Class c = cl.loadClass( "Model" );
Class subclass = c;
System.out.println( "\nSuperklassen von '" + c + "':" );
while( ( subclass = subclass.getSuperclass() ) !=null )
System.out.println( "-> " + subclass);
java.lang.reflect.Constructor[] cons = c.getConstructors();
System.out.println( "\nKonstruktoren (" + cons.length + "):" );
for(int i=0; i<cons.length; i++)
System.out.println( "- " + cons[i] );
java.lang.reflect.Method[] meths = c.getMethods();
System.out.println( "\nMethoden (" + meths.length + "):" );
for(int i=0; i<meths.length; i++)
System.out.println( "- " + meths[i] );
Object o = c.newInstance();
//if( o instanceof GremlinModel ) model = (GremlinModel);
}
catch(Exception e)
{
System.out.println("Help me! Erruer!");
e.printStackTrace();
System.exit(0);
}
Raus kommt dabei eine IllegalAccessException. Jedoch finde ich schonmal komisch, dass keine Konstruktoren angezeigt werden. Die Methoden werden alle angezeigt.
Hier der vollständigkeit halber die Klasse die ich als letztes zu Testwecken laden wollte:
Code:
public class Model
{
Model( )
{
System.out.println( "kk" );
}
Model( String test )
{
System.out.println( test );
}
}
Bitte helft mir!