home *** CD-ROM | disk | FTP | other *** search
/ Australian PC Authority 2000 March / MAR2000.BIN / docs / install.exe / InstallerData / lax.jar / com / zerog / lax / LAX.class (.txt)
Encoding:
Java Class File  |  1999-10-22  |  6.1 KB  |  273 lines

  1. package com.zerog.lax;
  2.  
  3. import com.zerog.util.QuotedStreamTokenizer;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.io.InputStream;
  9. import java.io.PrintStream;
  10. import java.io.StringReader;
  11. import java.lang.reflect.InvocationTargetException;
  12. import java.lang.reflect.Method;
  13. import java.util.Enumeration;
  14. import java.util.Properties;
  15. import java.util.Vector;
  16.  
  17. public class LAX {
  18.    // $FF: renamed from: a java.lang.String[]
  19.    public String[] field_0;
  20.    // $FF: renamed from: b java.util.Properties
  21.    public Properties field_1;
  22.  
  23.    // $FF: renamed from: a (java.lang.String) void
  24.    public void method_0(String var1) {
  25.       this.field_1 = new Properties(System.getProperties());
  26.  
  27.       try {
  28.          FileInputStream var2 = new FileInputStream(new File(var1));
  29.          this.field_1.load(var2);
  30.          ((InputStream)var2).close();
  31.          Enumeration var3 = System.getProperties().propertyNames();
  32.  
  33.          while(var3.hasMoreElements()) {
  34.             String var4 = ((String)var3.nextElement()).toLowerCase();
  35.             if (var4.startsWith("lax.")) {
  36.                this.field_1.remove(var4);
  37.             }
  38.          }
  39.  
  40.          var3 = this.field_1.propertyNames();
  41.  
  42.          while(var3.hasMoreElements()) {
  43.             String var13 = (String)var3.nextElement();
  44.             if (var13.startsWith("LAX.")) {
  45.                String var5 = this.field_1.getProperty(var13);
  46.                this.field_1.put(var13.toLowerCase(), var5);
  47.             }
  48.          }
  49.  
  50.          System.setProperties(this.field_1);
  51.          String var14 = System.getProperty("os.name").toLowerCase();
  52.          if (var14.indexOf("unix") != -1 || var14.indexOf("irix") != -1 || var14.indexOf("netbsd") != -1 || var14.indexOf("freebsd") != -1 || var14.indexOf("bsdi") != -1 || var14.indexOf("bsd") != -1 || var14.indexOf("unixware") != -1 || var14.indexOf("aix") != -1 || var14.indexOf("dg/ux") != -1 || var14.indexOf("dgux") != -1 || var14.indexOf("linux") != -1 || var14.indexOf("machten") != -1 || var14.indexOf("nextstep") != -1 || var14.indexOf("rhapsody") != -1 || var14.indexOf("hp-ux") != -1 || var14.indexOf("hpux") != -1 || var14.indexOf("sunos") != -1 || var14.indexOf("solaris") != -1 || var14.indexOf("windows") != -1) {
  53.             this.method_1();
  54.          }
  55.  
  56.          String var15 = System.getProperty("LISTARGS");
  57.          if (var15 != null) {
  58.             PrintStream var6 = System.out;
  59.             if (var15.length() != 0) {
  60.                try {
  61.                   var6 = new PrintStream(new FileOutputStream(new File(var15)));
  62.                } catch (IOException var10) {
  63.                }
  64.             }
  65.  
  66.             var6.println("Args");
  67.             var6.println("----");
  68.  
  69.             for(int var7 = 0; var7 < this.field_0.length; ++var7) {
  70.                var6.println("arg[" + var7 + "]= '" + this.field_0[var7] + "'");
  71.             }
  72.  
  73.             var6.println("");
  74.          }
  75.  
  76.          var15 = System.getProperty("LISTPROPS");
  77.          if (var15 != null) {
  78.             PrintStream var17 = System.out;
  79.             if (var15.length() != 0) {
  80.                try {
  81.                   var17 = new PrintStream(new FileOutputStream(new File(var15)));
  82.                } catch (IOException var9) {
  83.                }
  84.             }
  85.  
  86.             var17.println("Properties");
  87.             var17.println("----------");
  88.             Enumeration var18 = this.field_1.propertyNames();
  89.  
  90.             while(var18.hasMoreElements()) {
  91.                String var8 = (String)var18.nextElement();
  92.                var17.println(var8 + " = " + this.field_1.getProperty(var8));
  93.             }
  94.  
  95.             var17.println("");
  96.          }
  97.       } catch (IOException var11) {
  98.          ((Throwable)var11).printStackTrace();
  99.       }
  100.  
  101.    }
  102.  
  103.    // $FF: renamed from: a () void
  104.    private void method_1() {
  105.       String var1;
  106.       if ((var1 = System.getProperty("lax.stdout.redirect")) != null && var1.length() > 0 && !var1.toLowerCase().trim().equals("console") && !var1.toLowerCase().trim().equals("")) {
  107.          try {
  108.             System.setOut(new PrintStream(new FileOutputStream(var1, true)));
  109.          } catch (IOException var5) {
  110.             ((Throwable)var5).printStackTrace();
  111.          }
  112.       }
  113.  
  114.       String var2;
  115.       if ((var2 = System.getProperty("lax.stderr.redirect")) != null && var2.length() > 0 && !var2.toLowerCase().trim().equals("console") && !var2.toLowerCase().trim().equals("")) {
  116.          if (var2.equals(var1)) {
  117.             System.setErr(System.out);
  118.          } else {
  119.             try {
  120.                System.setErr(new PrintStream(new FileOutputStream(var2, true)));
  121.             } catch (IOException var4) {
  122.                ((Throwable)var4).printStackTrace();
  123.             }
  124.          }
  125.       }
  126.  
  127.    }
  128.  
  129.    // $FF: renamed from: b () void
  130.    private void method_2() throws Throwable {
  131.       Class var1 = null;
  132.       String var2 = this.field_1.getProperty("lax.main.class");
  133.       if (var2 == null) {
  134.          throw new RuntimeException("lax.main.class" + " was not found in the properties file.");
  135.       } else {
  136.          Method var3 = null;
  137.          String var4 = this.field_1.getProperty("lax.main.method");
  138.          if (var4 == null) {
  139.             throw new RuntimeException("lax.main.method" + " was not found in class " + var2);
  140.          } else {
  141.             String var5 = this.field_1.getProperty("lax.command.line.args");
  142.  
  143.             try {
  144.                var1 = Class.forName(var2);
  145.             } catch (ClassNotFoundException var13) {
  146.                ((Throwable)var13).printStackTrace();
  147.             }
  148.  
  149.             try {
  150.                Class[] var6 = new Class[]{(new String[0]).getClass()};
  151.                var3 = var1.getMethod(var4, var6);
  152.             } catch (NoSuchMethodException var12) {
  153.                ((Throwable)var12).printStackTrace();
  154.             }
  155.  
  156.             try {
  157.                Object[] var14 = new Object[]{this.method_3(var5)};
  158.                var3.invoke((Object)null, var14);
  159.             } catch (IllegalAccessException var7) {
  160.                System.err.println("LAX: Method is inaccessible.");
  161.                System.err.println("The class " + var2 + " must be public and");
  162.                System.err.println("have a public static void " + var4 + "(String[]) method.");
  163.                System.exit(-1);
  164.             } catch (IllegalArgumentException var8) {
  165.                System.err.println("LAX: Method is inaccessible.");
  166.                System.err.println("The class " + var2 + " must be public and");
  167.                System.err.println("have a public static void " + var4 + "(String[]) method.");
  168.                System.exit(-1);
  169.             } catch (InvocationTargetException var9) {
  170.                throw var9.getTargetException();
  171.             } catch (NullPointerException var10) {
  172.                System.err.println("LAX: Method.invoke() threw NullPointerException:");
  173.                Thread.dumpStack();
  174.                ((Throwable)var10).printStackTrace(System.err);
  175.                System.err.println("LAX: exiting.");
  176.                System.exit(-1);
  177.             } catch (Exception var11) {
  178.                System.err.println("LAX: Method.invoke() threw Exception:");
  179.                Thread.dumpStack();
  180.                ((Throwable)var11).printStackTrace(System.err);
  181.                System.err.println("LAX: exiting.");
  182.                System.exit(-1);
  183.             }
  184.  
  185.          }
  186.       }
  187.    }
  188.  
  189.    // $FF: renamed from: b (java.lang.String) java.lang.String[]
  190.    private String[] method_3(String var1) {
  191.       if (var1 != null && var1.length() > 0) {
  192.          QuotedStreamTokenizer var2 = new QuotedStreamTokenizer(new StringReader(var1));
  193.          Vector var4 = new Vector();
  194.  
  195.          String var3;
  196.          try {
  197.             while((var3 = var2.c()) != null) {
  198.                if (var2.a() == -10) {
  199.                   var4.addElement(var3);
  200.                } else if (var2.a() == -11) {
  201.                   var4.addElement(var3);
  202.                } else if (var2.a() == -12) {
  203.                   var4.addElement(var3);
  204.                }
  205.             }
  206.          } catch (Exception var8) {
  207.             ((Throwable)var8).printStackTrace();
  208.          }
  209.  
  210.          if (var4.size() <= 0) {
  211.             return new String[0];
  212.          } else {
  213.             for(int var5 = 0; var5 < var4.size(); ++var5) {
  214.                Object var6 = var4.elementAt(var5);
  215.                if (((String)var6).equals("$CMD_LINE_ARGUMENTS$")) {
  216.                   for(int var7 = this.field_0.length - 1; var7 > 1; --var7) {
  217.                      var4.insertElementAt(this.field_0[var7], var5);
  218.                   }
  219.  
  220.                   var4.removeElement(var6);
  221.                }
  222.             }
  223.  
  224.             String[] var9 = new String[var4.size()];
  225.  
  226.             for(int var10 = 0; var10 < var4.size(); ++var10) {
  227.                var9[var10] = (String)var4.elementAt(var10);
  228.             }
  229.  
  230.             return var9;
  231.          }
  232.       } else {
  233.          return new String[0];
  234.       }
  235.    }
  236.  
  237.    // $FF: renamed from: c () void
  238.    private void method_4() {
  239.       System.out.println("\nLaunchAnywhere(tm) - The Universal Java Application Launcher");
  240.       System.out.println("       Version 3.0 - Copyright 1998-99 Zero G Software, Inc.\n");
  241.    }
  242.  
  243.    public static void main(String[] var0) throws Throwable {
  244.       new LAX(var0);
  245.    }
  246.  
  247.    public LAX() {
  248.       this.method_4();
  249.    }
  250.  
  251.    public LAX(String[] var1) throws Throwable {
  252.       this.method_4();
  253.       this.field_0 = var1;
  254.       if (var1 != null && var1.length > 0) {
  255.          if (var1[0].toUpperCase().endsWith(".LAX")) {
  256.             this.method_0(var1[0]);
  257.          }
  258.  
  259.          if (var1.length > 1 && !var1[1].equals("lax_no_temp_file")) {
  260.             File var3 = new File(var1[1]);
  261.             if (var3 != null && var3.exists()) {
  262.                this.method_0(var3.getPath());
  263.                var3.delete();
  264.             }
  265.          }
  266.       } else {
  267.          System.out.println("Path not supplied to properties file");
  268.       }
  269.  
  270.       this.method_2();
  271.    }
  272. }
  273.