home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 25 / CDROM25.iso / Share / prog / VJ11 / VJTRIAL.EXE / IE30Java.exe / classd.exe / java / lang / Runtime.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-01-27  |  3.3 KB  |  182 lines

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