001 package com.croftsoft.core.lang.classloader; 002 003 import java.awt.*; 004 import java.io.*; 005 006 /********************************************************************* 007 * <P> 008 * @version 009 * 1998-06-03 010 * @author 011 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 012 *********************************************************************/ 013 014 public class DialogClassLoader 015 ////////////////////////////////////////////////////////////////////// 016 ////////////////////////////////////////////////////////////////////// 017 { 018 019 ////////////////////////////////////////////////////////////////////// 020 ////////////////////////////////////////////////////////////////////// 021 022 /********************************************************************* 023 * Loads a remote class and launches its main() method. 024 * 025 * @param 026 * Command-line arguments: 027 * <OL> 028 * <LI> The URL name for the codebase. 029 * <LI> The name of the class with the "main(args)" method. 030 * <LI> The name of the local persistent resource cache directory. 031 * <LI> Subsequent arguments to be passed to the invoked main method. 032 * </OL> 033 * Example 034 *********************************************************************/ 035 public static void main ( String [ ] args ) 036 throws Exception 037 ////////////////////////////////////////////////////////////////////// 038 { 039 if ( args.length >= 3 ) 040 { 041 CacheClassLoader.main ( args ); 042 return; 043 } 044 045 ( new DialogClassLoader ( ) ).start ( ); 046 } 047 048 public DialogClassLoader ( ) 049 ////////////////////////////////////////////////////////////////////// 050 { 051 } 052 053 public void start ( ) 054 ////////////////////////////////////////////////////////////////////// 055 { 056 System.out.println ( System.getProperty ( "java.class.path" ) ); 057 058 // Run the user's classpath searching for "mayhem.class". 059 // When you find it, assume that that is the cache path. 060 // Look for a settings file in that directory. 061 // If there is no settings file in that directory, assume defaults and prompt. 062 063 // System.out.println ( System.getProperty ( "user.home" ) ); 064 065 File file0 = new File ( "." ); 066 try 067 { 068 System.out.println ( file0.getCanonicalPath ( ) ); 069 } 070 catch ( Exception ex ) { } 071 072 Frame frame = new Frame ( "Mystic Mayhem Installation" ); 073 FileDialog fileDialog = new FileDialog ( 074 frame, "Mystic Mayhem - please choose the installation directory", 075 FileDialog.SAVE ); 076 fileDialog.setFile ( "mayhem" ); 077 frame.setBounds ( 0, 0, 300, 300 ); 078 fileDialog.show ( ); 079 frame.show ( ); 080 // don't forget to dispose of both 081 File file = new File ( fileDialog.getDirectory ( ) 082 + File.separator + fileDialog.getFile ( ) ); 083 084 try 085 { 086 System.out.println ( file.getCanonicalPath ( ) ); 087 } 088 catch ( Exception ex ) { } 089 090 fileDialog.dispose ( ); 091 frame.dispose ( ); 092 } 093 094 ////////////////////////////////////////////////////////////////////// 095 ////////////////////////////////////////////////////////////////////// 096 }