home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 November / PCO1197.ISO / FilesBBS / WIN95 / PROD_W95 / F_32579 / java / lang / Runtime.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-05-03  |  3.2 KB  |  152 lines

  1. package java.lang;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.OutputStream;
  6. import java.util.StringTokenizer;
  7.  
  8. public class Runtime {
  9.    private static Runtime currentRuntime = new Runtime();
  10.    private String[] paths;
  11.  
  12.    public static Runtime getRuntime() {
  13.       return currentRuntime;
  14.    }
  15.  
  16.    private Runtime() {
  17.    }
  18.  
  19.    private native void exitInternal(int var1);
  20.  
  21.    public void exit(int var1) {
  22.       SecurityManager var2 = System.getSecurityManager();
  23.       if (var2 != null) {
  24.          var2.checkExit(var1);
  25.       }
  26.  
  27.       this.exitInternal(var1);
  28.    }
  29.  
  30.    private native Process execInternal(String[] var1, String[] var2) throws IOException;
  31.  
  32.    public Process exec(String var1) throws IOException {
  33.       return this.exec((String)var1, (String[])null);
  34.    }
  35.  
  36.    public Process exec(String var1, String[] var2) throws IOException {
  37.       int var3 = 0;
  38.       StringTokenizer var5 = new StringTokenizer(var1);
  39.       var3 = var5.countTokens();
  40.       String[] var4 = new String[var3];
  41.       var5 = new StringTokenizer(var1);
  42.  
  43.       for(int var8 = 0; var5.hasMoreTokens(); var4[var8++] = var5.nextToken()) {
  44.       }
  45.  
  46.       SecurityManager var6 = System.getSecurityManager();
  47.       if (var6 != null) {
  48.          var6.checkExec(var4[0]);
  49.       }
  50.  
  51.       return this.execInternal(var4, var2);
  52.    }
  53.  
  54.    public Process exec(String[] var1) throws IOException {
  55.       return this.exec((String[])var1, (String[])null);
  56.    }
  57.  
  58.    public Process exec(String[] var1, String[] var2) throws IOException {
  59.       SecurityManager var3 = System.getSecurityManager();
  60.       if (var3 != null) {
  61.          var3.checkExec(var1[0]);
  62.       }
  63.  
  64.       return this.execInternal(var1, var2);
  65.    }
  66.  
  67.    public native long freeMemory();
  68.  
  69.    public native long totalMemory();
  70.  
  71.    public native void gc();
  72.  
  73.    public native void runFinalization();
  74.  
  75.    public native void traceInstructions(boolean var1);
  76.  
  77.    public native void traceMethodCalls(boolean var1);
  78.  
  79.    private synchronized native String initializeLinkerInternal();
  80.  
  81.    private native String buildLibName(String var1, String var2);
  82.  
  83.    private native boolean loadFileInternal(String var1);
  84.  
  85.    private void initializeLinker() {
  86.       String var1 = this.initializeLinkerInternal();
  87.       char var2 = System.getProperty("path.separator").charAt(0);
  88.       int var3 = var1.length();
  89.       int var4 = var1.indexOf(var2);
  90.  
  91.       int var6;
  92.       for(var6 = 0; var4 >= 0; var4 = var1.indexOf(var2, var4 + 1)) {
  93.          ++var6;
  94.       }
  95.  
  96.       this.paths = new String[var6 + 1];
  97.       var4 = 0;
  98.       var6 = 0;
  99.  
  100.       for(int var5 = var1.indexOf(var2); var5 >= 0; var5 = var1.indexOf(var2, var4)) {
  101.          if (var5 - var4 > 0) {
  102.             this.paths[var6++] = var1.substring(var4, var5);
  103.          } else if (var5 - var4 == 0) {
  104.             this.paths[var6++] = ".";
  105.          }
  106.  
  107.          var4 = var5 + 1;
  108.       }
  109.  
  110.       this.paths[var6] = var1.substring(var4, var3);
  111.    }
  112.  
  113.    public synchronized void load(String var1) {
  114.       SecurityManager var2 = System.getSecurityManager();
  115.       if (var2 != null) {
  116.          var2.checkLink(var1);
  117.       }
  118.  
  119.       if (!this.loadFileInternal(var1)) {
  120.          throw new UnsatisfiedLinkError(var1);
  121.       }
  122.    }
  123.  
  124.    public synchronized void loadLibrary(String var1) {
  125.       SecurityManager var2 = System.getSecurityManager();
  126.       if (var2 != null) {
  127.          var2.checkLink(var1);
  128.       }
  129.  
  130.       if (this.paths == null) {
  131.          this.initializeLinker();
  132.       }
  133.  
  134.       for(int var3 = 0; var3 < this.paths.length; ++var3) {
  135.          String var4 = this.buildLibName(this.paths[var3], var1);
  136.          if (this.loadFileInternal(var4)) {
  137.             return;
  138.          }
  139.       }
  140.  
  141.       throw new UnsatisfiedLinkError("no " + var1 + " in shared library path");
  142.    }
  143.  
  144.    public InputStream getLocalizedInputStream(InputStream var1) {
  145.       return var1;
  146.    }
  147.  
  148.    public OutputStream getLocalizedOutputStream(OutputStream var1) {
  149.       return var1;
  150.    }
  151. }
  152.