Hopelijk heeft er hier iemand ervaring met reflection, want ik zit namelijk met het volgende probleem.
Ik wil vanuit mijn java instantie een ander java proggie opstarten. Zolang die andere klass zich in dezelfde dir bevind als de initiator gaat alles goed... maar zodra ik 'm vanuit een andere dir moet laden krijg ik een exception...
hier de code en de exceptie:
ReflectionTest.java:
// edit: hmmz, [java] in de topictitel vergeten
Ik wil vanuit mijn java instantie een ander java proggie opstarten. Zolang die andere klass zich in dezelfde dir bevind als de initiator gaat alles goed... maar zodra ik 'm vanuit een andere dir moet laden krijg ik een exception...
hier de code en de exceptie:
ReflectionTest.java:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| import java.lang.reflect.*; import java.net.*; import java.io.*; class ReflectionTest { ReflectionTest(String classFile, String classDir) { try { URLClassLoader clsLoader = new URLClassLoader(new URL[]{new URL("file:/" + classDir)}); Class c = clsLoader.loadClass(classFile); Class argClass = String[].class; Method mainMeth = c.getMethod("main", new Class[]{argClass}); String[] args = {"tja"}; mainMeth.invoke(null, new Object[]{args}); } catch(Exception e){ e.printStackTrace(); } } public static void main(String[] args) { new ReflectionTest(args[0], args[1]); } } /* Test.class staat in dezelfde dir als deze class en dan gaat alles goed java ReflectionTest Test ./ Main.class in C:/windows/desktop/tmpTest/Bal/ gaat verkeerd... java ReflectionTest Main C:/windows/desktop/tmpTest/Bal/ De exception is: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at Main.<init>(Main.java:27) at ReflectionTest.main(ReflectionTest.java:25) Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 at Main.main(Main.java:51) ... 6 more */ |
// edit: hmmz, [java] in de topictitel vergeten
[ Voor 7% gewijzigd door Verwijderd op 30-03-2004 17:07 ]