home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / lang / Runtime.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  3.5 KB  |  177 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.    public static void runFinalizersOnExit(boolean var0) {
  31.       SecurityManager var1 = System.getSecurityManager();
  32.       if (var1 != null) {
  33.          try {
  34.             var1.checkExit(0);
  35.          } catch (SecurityException var2) {
  36.             throw new SecurityException("runFinalizersOnExit");
  37.          }
  38.       }
  39.  
  40.       runFinalizersOnExit0(var0);
  41.    }
  42.  
  43.    private static native void runFinalizersOnExit0(boolean var0);
  44.  
  45.    private native Process execInternal(String[] var1, String[] var2) throws IOException;
  46.  
  47.    public Process exec(String var1) throws IOException {
  48.       return this.exec((String)var1, (String[])null);
  49.    }
  50.  
  51.    public Process exec(String var1, String[] var2) throws IOException {
  52.       int var3 = 0;
  53.       StringTokenizer var5 = new StringTokenizer(var1);
  54.       var3 = var5.countTokens();
  55.       String[] var4 = new String[var3];
  56.       var5 = new StringTokenizer(var1);
  57.  
  58.       for(int var8 = 0; var5.hasMoreTokens(); var4[var8++] = var5.nextToken()) {
  59.       }
  60.  
  61.       SecurityManager var6 = System.getSecurityManager();
  62.       if (var6 != null) {
  63.          var6.checkExec(var4[0]);
  64.       }
  65.  
  66.       return this.execInternal(var4, var2);
  67.    }
  68.  
  69.    public Process exec(String[] var1) throws IOException {
  70.       return this.exec((String[])var1, (String[])null);
  71.    }
  72.  
  73.    public Process exec(String[] var1, String[] var2) throws IOException {
  74.       SecurityManager var3 = System.getSecurityManager();
  75.       if (var3 != null) {
  76.          var3.checkExec(var1[0]);
  77.       }
  78.  
  79.       return this.execInternal(var1, var2);
  80.    }
  81.  
  82.    public native long freeMemory();
  83.  
  84.    public native long totalMemory();
  85.  
  86.    public native void gc();
  87.  
  88.    public native void runFinalization();
  89.  
  90.    public native void traceInstructions(boolean var1);
  91.  
  92.    public native void traceMethodCalls(boolean var1);
  93.  
  94.    private synchronized native String initializeLinkerInternal();
  95.  
  96.    private native String buildLibName(String var1, String var2);
  97.  
  98.    private native int loadFileInternal(String var1);
  99.  
  100.    private void initializeLinker() {
  101.       String var1 = this.initializeLinkerInternal();
  102.       char var2 = System.getProperty("path.separator").charAt(0);
  103.       int var3 = var1.length();
  104.       int var4 = var1.indexOf(var2);
  105.  
  106.       int var6;
  107.       for(var6 = 0; var4 >= 0; var4 = var1.indexOf(var2, var4 + 1)) {
  108.          ++var6;
  109.       }
  110.  
  111.       this.paths = new String[var6 + 1];
  112.       var4 = 0;
  113.       var6 = 0;
  114.  
  115.       for(int var5 = var1.indexOf(var2); var5 >= 0; var5 = var1.indexOf(var2, var4)) {
  116.          if (var5 - var4 > 0) {
  117.             this.paths[var6++] = var1.substring(var4, var5);
  118.          } else if (var5 - var4 == 0) {
  119.             this.paths[var6++] = ".";
  120.          }
  121.  
  122.          var4 = var5 + 1;
  123.       }
  124.  
  125.       this.paths[var6] = var1.substring(var4, var3);
  126.    }
  127.  
  128.    public synchronized void load(String var1) {
  129.       SecurityManager var2 = System.getSecurityManager();
  130.       if (var2 != null) {
  131.          var2.checkLink(var1);
  132.       }
  133.  
  134.       int var3 = this.loadFileInternal(var1);
  135.       if (var3 == -1) {
  136.          throw new OutOfMemoryError();
  137.       } else if (var3 == 0) {
  138.          throw new UnsatisfiedLinkError(var1);
  139.       }
  140.    }
  141.  
  142.    public synchronized void loadLibrary(String var1) {
  143.       SecurityManager var2 = System.getSecurityManager();
  144.       if (var2 != null) {
  145.          var2.checkLink(var1);
  146.       }
  147.  
  148.       if (this.paths == null) {
  149.          this.initializeLinker();
  150.       }
  151.  
  152.       for(int var3 = 0; var3 < this.paths.length; ++var3) {
  153.          String var5 = this.buildLibName(this.paths[var3], var1);
  154.          int var4 = this.loadFileInternal(var5);
  155.          if (var4 == -1) {
  156.             throw new OutOfMemoryError();
  157.          }
  158.  
  159.          if (var4 == 1) {
  160.             return;
  161.          }
  162.       }
  163.  
  164.       throw new UnsatisfiedLinkError("no " + var1 + " in shared library path");
  165.    }
  166.  
  167.    /** @deprecated */
  168.    public InputStream getLocalizedInputStream(InputStream var1) {
  169.       return var1;
  170.    }
  171.  
  172.    /** @deprecated */
  173.    public OutputStream getLocalizedOutputStream(OutputStream var1) {
  174.       return var1;
  175.    }
  176. }
  177.