imported brians code
[nestedvm.git] / src / tests / Env.java
1 package tests;
2
3 import org.xwt.mips.Runtime;
4 import org.xwt.mips.Interpreter;
5
6 class Env {
7     public static void main(String[] args) throws Exception {
8         int n = 0;
9         while(n < args.length && args[n].indexOf("=") != -1) n++;
10
11         if(n==args.length) {
12             System.err.println("Usage: Env [name=value ...] classname [args ...]");
13             System.exit(1);
14         }
15         
16         String[] env = new String[n];
17         String[] appArgs = new String[args.length-n-1];
18         for(int i=0;i<n;i++) env[i] = args[i];
19         String className = args[n];
20         for(int i=n+1;i<args.length;i++) appArgs[i-n-1] = args[i];
21         
22         Runtime rt;
23         if(className.endsWith(".mips")) {
24             rt = new Interpreter(className);
25         } else {
26             Class c = Class.forName(className);
27             if(!Runtime.class.isAssignableFrom(c)) { System.err.println(className + " isn't a MIPS compiled class"); System.exit(1); }
28             rt = (Runtime) c.newInstance();
29         }
30         System.exit(rt.run(appArgs,env));
31     }
32 }