H
hpa42
Gast
Hi
Schreibe zurzeit meinen eigenen Klassenbrowser mit einem eigenen ClassLoader. Jetzt habe
ich Problem beim automatischen Laden von .class Files vom lokalen Filesystem.
Situation:
- Ich habe einen FileBrowser geschrieben, welcher alle Java .class Files sucht. Die gefundenen
.class Files sollen geladen werden um Attribute und Methoden aufzulisten. Package Namen, CLASSPATH, ..., sind natürlich so nicht bekannt, nur das aktuelle Directory mit dem File eg. ExecDemo.class.
Fragen:
- Wie kann ich ein beliebiges .class Files aus einem aktuellen Directory lesen und laden, ohne den Package-Namen zu kennen. Geht das gar nicht? Wenn doch wie?
- Brauche ich den ClassLoader oder besser den URLClassLoader.
kind regards /hp
Dieser Code funktioniert, aber eben nicht dynamisch.
Schreibe zurzeit meinen eigenen Klassenbrowser mit einem eigenen ClassLoader. Jetzt habe
ich Problem beim automatischen Laden von .class Files vom lokalen Filesystem.
Situation:
- Ich habe einen FileBrowser geschrieben, welcher alle Java .class Files sucht. Die gefundenen
.class Files sollen geladen werden um Attribute und Methoden aufzulisten. Package Namen, CLASSPATH, ..., sind natürlich so nicht bekannt, nur das aktuelle Directory mit dem File eg. ExecDemo.class.
Fragen:
- Wie kann ich ein beliebiges .class Files aus einem aktuellen Directory lesen und laden, ohne den Package-Namen zu kennen. Geht das gar nicht? Wenn doch wie?
- Brauche ich den ClassLoader oder besser den URLClassLoader.
kind regards /hp
Dieser Code funktioniert, aber eben nicht dynamisch.
Code:
File classPath = new File("D:\\eclipse\\workspace\\MVC recoded\\classes");
URL url;
URL[]urls;
URLClassLoader urlClassLoader;
Class testLoadedClass, lc;
Method methods[];
try
{
url = classPath.toURL();
urls = new URL[]{url};
urlClassLoader = new URLClassLoader(urls);
testLoadedClass = urlClassLoader.loadClass("examples.ExecDemo");
methods = testLoadedClass.getMethods();
System.out.println(testLoadedClass.getName());
System.out.println(" # " + methods[0].toString());
lc = testLoadedClass.getClass();
}
catch(Exception ex)
{
System.out.println("Exception: " + ex);
}