home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / sun / applet / Main.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  8.2 KB  |  332 lines

  1. package sun.applet;
  2.  
  3. import java.io.BufferedInputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.lang.reflect.InvocationTargetException;
  9. import java.lang.reflect.Method;
  10. import java.net.MalformedURLException;
  11. import java.net.URL;
  12. import java.util.Enumeration;
  13. import java.util.Hashtable;
  14. import java.util.Properties;
  15. import java.util.Vector;
  16.  
  17. public class Main {
  18.    static File theUserPropertiesFile;
  19.    static final String[][] avDefaultUserProps = new String[][]{{"http.proxyHost", ""}, {"http.proxyPort", "80"}, {"package.restrict.access.sun", "true"}};
  20.    private static AppletMessageHandler amh;
  21.    private boolean debugFlag = false;
  22.    private boolean helpFlag = false;
  23.    private String encoding = null;
  24.    private boolean noSecurityFlag = false;
  25.    private static boolean cmdLineTestFlag;
  26.    private static Vector urlList;
  27.    public static final String theVersion = "1.3";
  28.    // $FF: synthetic field
  29.    static Class array$Ljava$lang$String;
  30.  
  31.    public static void main(String[] var0) {
  32.       Main var1 = new Main();
  33.       int var2 = var1.run(var0);
  34.       if (var2 != 0 || cmdLineTestFlag) {
  35.          System.exit(var2);
  36.       }
  37.  
  38.    }
  39.  
  40.    private int run(String[] var1) {
  41.       try {
  42.          if (var1.length == 0) {
  43.             usage();
  44.             return 0;
  45.          }
  46.  
  47.          int var3;
  48.          for(int var2 = 0; var2 < var1.length; var2 += var3) {
  49.             var3 = this.decodeArg(var1, var2);
  50.             if (var3 == 0) {
  51.                throw new ParseException(this, lookup("main.err.unrecognizedarg", var1[var2]));
  52.             }
  53.          }
  54.       } catch (ParseException var5) {
  55.          System.err.println(((Throwable)var5).getMessage());
  56.          return 1;
  57.       }
  58.  
  59.       if (this.helpFlag) {
  60.          usage();
  61.          return 0;
  62.       } else if (urlList.size() == 0) {
  63.          System.err.println(lookup("main.err.inputfile"));
  64.          return 1;
  65.       } else if (this.debugFlag) {
  66.          return this.invokeDebugger(var1);
  67.       } else {
  68.          if (!this.noSecurityFlag && System.getSecurityManager() == null) {
  69.             this.init();
  70.          }
  71.  
  72.          for(int var6 = 0; var6 < urlList.size(); ++var6) {
  73.             try {
  74.                AppletViewer.parse((URL)urlList.elementAt(var6), this.encoding);
  75.             } catch (IOException var4) {
  76.                System.err.println(lookup("main.err.io", ((Throwable)var4).getMessage()));
  77.                return 1;
  78.             }
  79.          }
  80.  
  81.          return 0;
  82.       }
  83.    }
  84.  
  85.    private static void usage() {
  86.       System.out.println(lookup("usage"));
  87.    }
  88.  
  89.    private int decodeArg(String[] var1, int var2) throws ParseException {
  90.       String var3 = var1[var2];
  91.       int var4 = var1.length;
  92.       if (!"-help".equalsIgnoreCase(var3) && !"-?".equals(var3)) {
  93.          if ("-encoding".equals(var3) && var2 < var4 - 1) {
  94.             if (this.encoding != null) {
  95.                throw new ParseException(this, lookup("main.err.dupoption", var3));
  96.             } else {
  97.                ++var2;
  98.                this.encoding = var1[var2];
  99.                return 2;
  100.             }
  101.          } else if ("-debug".equals(var3)) {
  102.             this.debugFlag = true;
  103.             return 1;
  104.          } else if ("-Xnosecurity".equals(var3)) {
  105.             System.err.println();
  106.             System.err.println(lookup("main.warn.nosecmgr"));
  107.             System.err.println();
  108.             this.noSecurityFlag = true;
  109.             return 1;
  110.          } else if ("-XcmdLineTest".equals(var3)) {
  111.             cmdLineTestFlag = true;
  112.             return 1;
  113.          } else if (var3.startsWith("-")) {
  114.             throw new ParseException(this, lookup("main.err.unsupportedopt", var3));
  115.          } else {
  116.             URL var5 = this.parseURL(var3);
  117.             if (var5 != null) {
  118.                urlList.addElement(var5);
  119.                return 1;
  120.             } else {
  121.                return 0;
  122.             }
  123.          }
  124.       } else {
  125.          this.helpFlag = true;
  126.          return 1;
  127.       }
  128.    }
  129.  
  130.    private URL parseURL(String var1) throws ParseException {
  131.       Object var2 = null;
  132.  
  133.       try {
  134.          URL var5;
  135.          if (var1.indexOf(58) <= 1) {
  136.             var5 = (new File(System.getProperty("user.dir"), var1)).toURL();
  137.          } else if (var1.startsWith("file:") && var1.replace(File.separatorChar, '/').indexOf(47) == -1) {
  138.             String var3 = var1.substring("file:".length());
  139.             if (var3.length() > 0) {
  140.                var5 = (new File(System.getProperty("user.dir"), var3)).toURL();
  141.             } else {
  142.                var5 = new URL(var1);
  143.             }
  144.          } else {
  145.             var5 = new URL(var1);
  146.          }
  147.  
  148.          return var5;
  149.       } catch (MalformedURLException var4) {
  150.          throw new ParseException(this, lookup("main.err.badurl", var1, ((Throwable)var4).getMessage()));
  151.       }
  152.    }
  153.  
  154.    private int invokeDebugger(String[] var1) {
  155.       String[] var2 = new String[var1.length + 1];
  156.       int var3 = 0;
  157.       String var4 = System.getProperty("java.home") + File.separator + "phony";
  158.       var2[var3++] = "-Djava.class.path=" + var4;
  159.       var2[var3++] = "sun.applet.Main";
  160.  
  161.       for(int var5 = 0; var5 < var1.length; ++var5) {
  162.          if (!"-debug".equals(var1[var5])) {
  163.             var2[var3++] = var1[var5];
  164.          }
  165.       }
  166.  
  167.       try {
  168.          Class var6 = Class.forName("com.sun.tools.example.debug.tty.TTY", true, ClassLoader.getSystemClassLoader());
  169.          Method var7 = var6.getDeclaredMethod("main", array$Ljava$lang$String == null ? (array$Ljava$lang$String = class$("[Ljava.lang.String;")) : array$Ljava$lang$String);
  170.          var7.invoke((Object)null, var2);
  171.          return 0;
  172.       } catch (ClassNotFoundException var10) {
  173.          System.err.println(lookup("main.debug.cantfinddebug"));
  174.          return 1;
  175.       } catch (NoSuchMethodException var11) {
  176.          System.err.println(lookup("main.debug.cantfindmain"));
  177.          return 1;
  178.       } catch (InvocationTargetException var12) {
  179.          System.err.println(lookup("main.debug.exceptionindebug"));
  180.          return 1;
  181.       } catch (IllegalAccessException var13) {
  182.          System.err.println(lookup("main.debug.cantaccess"));
  183.          return 1;
  184.       }
  185.    }
  186.  
  187.    private void init() {
  188.       Properties var1 = this.getAVProps();
  189.       ((Hashtable)var1).put("acl.read", "+");
  190.       ((Hashtable)var1).put("acl.read.default", "");
  191.       ((Hashtable)var1).put("acl.write", "+");
  192.       ((Hashtable)var1).put("acl.write.default", "");
  193.       ((Hashtable)var1).put("browser", "sun.applet.AppletViewer");
  194.       ((Hashtable)var1).put("browser.version", "1.06");
  195.       ((Hashtable)var1).put("browser.vendor", "Sun Microsystems Inc.");
  196.       ((Hashtable)var1).put("http.agent", "Java(tm) 2 SDK, Standard Edition v1.3");
  197.       ((Hashtable)var1).put("package.restrict.definition.java", "true");
  198.       ((Hashtable)var1).put("package.restrict.definition.sun", "true");
  199.       ((Hashtable)var1).put("java.version.applet", "true");
  200.       ((Hashtable)var1).put("java.vendor.applet", "true");
  201.       ((Hashtable)var1).put("java.vendor.url.applet", "true");
  202.       ((Hashtable)var1).put("java.class.version.applet", "true");
  203.       ((Hashtable)var1).put("os.name.applet", "true");
  204.       ((Hashtable)var1).put("os.version.applet", "true");
  205.       ((Hashtable)var1).put("os.arch.applet", "true");
  206.       ((Hashtable)var1).put("file.separator.applet", "true");
  207.       ((Hashtable)var1).put("path.separator.applet", "true");
  208.       ((Hashtable)var1).put("line.separator.applet", "true");
  209.       Properties var2 = System.getProperties();
  210.       Enumeration var3 = var2.propertyNames();
  211.  
  212.       while(var3.hasMoreElements()) {
  213.          String var4 = (String)var3.nextElement();
  214.          String var5 = var2.getProperty(var4);
  215.          String var6;
  216.          if ((var6 = (String)var1.setProperty(var4, var5)) != null) {
  217.             System.err.println(lookup("main.warn.prop.overwrite", var4, var6, var5));
  218.          }
  219.       }
  220.  
  221.       System.setProperties(var1);
  222.       if (!this.noSecurityFlag) {
  223.          System.setSecurityManager(new AppletSecurity());
  224.       } else {
  225.          System.err.println(lookup("main.nosecmgr"));
  226.       }
  227.  
  228.    }
  229.  
  230.    private Properties getAVProps() {
  231.       new Properties();
  232.       File var2 = theUserPropertiesFile;
  233.       Properties var1;
  234.       if (var2.exists()) {
  235.          if (var2.canRead()) {
  236.             var1 = this.getAVProps(var2);
  237.          } else {
  238.             System.err.println(lookup("main.warn.cantreadprops", var2.toString()));
  239.             var1 = this.setDefaultAVProps();
  240.          }
  241.       } else {
  242.          File var3 = new File(System.getProperty("user.home"));
  243.          File var4 = new File(var3, ".hotjava");
  244.          var4 = new File(var4, "properties");
  245.          if (var4.exists()) {
  246.             var1 = this.getAVProps(var4);
  247.          } else {
  248.             System.err.println(lookup("main.warn.cantreadprops", var4.toString()));
  249.             var1 = this.setDefaultAVProps();
  250.          }
  251.  
  252.          try {
  253.             FileOutputStream var5 = new FileOutputStream(var2);
  254.             var1.store(var5, lookup("main.prop.store"));
  255.             var5.close();
  256.          } catch (IOException var6) {
  257.             System.err.println(lookup("main.err.prop.cantsave", var2.toString()));
  258.          }
  259.       }
  260.  
  261.       return var1;
  262.    }
  263.  
  264.    private Properties setDefaultAVProps() {
  265.       Properties var1 = new Properties();
  266.  
  267.       for(int var2 = 0; var2 < avDefaultUserProps.length; ++var2) {
  268.          var1.setProperty(avDefaultUserProps[var2][0], avDefaultUserProps[var2][1]);
  269.       }
  270.  
  271.       return var1;
  272.    }
  273.  
  274.    private Properties getAVProps(File var1) {
  275.       Properties var2 = new Properties();
  276.       Properties var3 = new Properties();
  277.  
  278.       try {
  279.          FileInputStream var4 = new FileInputStream(var1);
  280.          var3.load(new BufferedInputStream(var4));
  281.          var4.close();
  282.       } catch (IOException var6) {
  283.          System.err.println(lookup("main.err.prop.cantread", var1.toString()));
  284.       }
  285.  
  286.       for(int var7 = 0; var7 < avDefaultUserProps.length; ++var7) {
  287.          String var5 = var3.getProperty(avDefaultUserProps[var7][0]);
  288.          if (var5 != null) {
  289.             var2.setProperty(avDefaultUserProps[var7][0], var5);
  290.          } else {
  291.             var2.setProperty(avDefaultUserProps[var7][0], avDefaultUserProps[var7][1]);
  292.          }
  293.       }
  294.  
  295.       return var2;
  296.    }
  297.  
  298.    private static String lookup(String var0) {
  299.       return amh.getMessage(var0);
  300.    }
  301.  
  302.    private static String lookup(String var0, String var1) {
  303.       return amh.getMessage(var0, var1);
  304.    }
  305.  
  306.    private static String lookup(String var0, String var1, String var2) {
  307.       return amh.getMessage(var0, var1, var2);
  308.    }
  309.  
  310.    private static String lookup(String var0, String var1, String var2, String var3) {
  311.       return amh.getMessage(var0, var1, var2, var3);
  312.    }
  313.  
  314.    // $FF: synthetic method
  315.    static Class class$(String var0) {
  316.       try {
  317.          return Class.forName(var0);
  318.       } catch (ClassNotFoundException var2) {
  319.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  320.       }
  321.    }
  322.  
  323.    static {
  324.       File var0 = new File(System.getProperty("user.home"));
  325.       var0.canWrite();
  326.       theUserPropertiesFile = new File(var0, ".appletviewer");
  327.       amh = new AppletMessageHandler("appletviewer");
  328.       cmdLineTestFlag = false;
  329.       urlList = new Vector(1);
  330.    }
  331. }
  332.