0

Hello:
I have created a Desktop that interacts with a embedded db. I also
have crated a flash program that opens and runs itself in any web browser.

My inquiring is to find out if I can create a button to launch this flash program from my Java app?

Also is it possible to put the flash program in the db to
additionally control access to its code?

Please find attached a description of flash program to launch in browser.
Thanks

Edited by ceyesuma: err

2
Contributors
1
Reply
2
Views
7 Years
Discussion Span
Last Post by NormR1
0

I found some code via Google years ago. It has lots of special code depending on what OS your executing on. I have no idea if the code will work on Linux or Mac today. I am currently using it in my WinXP apps.

Attachments
/* Examples:
 *     BrowserControl.displayURL("http://www.javaworld.com")
 *     BrowserControl.displayURL("file://c:\\docs\\index.html")
 *     BrowserContorl.displayURL("file:///user/joe/index.html");
 *
 * Note - you must include the url type -- either "http://" or "file://".
 */

package NormsTools;

import java.io.*;
import java.util.*;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;

//import com.apple.mrj.MRJFileUtils;     // For Mac


public class BrowserControl {
   // ---------- Define constants: 
   public static final String FileProtocol = "file://";

   // Used to identify the windows platform.
   private static final String WIN_ID = "Windows";
   // The default system browser under windows.
   private static final String WIN_PATH = "rundll32";
   // The flag to display a url.
   private static final String WIN_FLAG = "url.dll,FileProtocolHandler";
   //  For NT ???    "cmd /c Notepad.exe D:\\temp\\test.txt"

   // Id mac
   private static final String Mac_ID = "Mac OS";

   // The default browser under unix.
   private static final String UNIX_PATH = "netscape";
   // The flag to display a url.
   private static final String UNIX_FLAG = "-remote openURL";

   final static boolean debug = false; //true;        // For testing
   
   /**
    * Display a file in the system browser.If you want to display a
    * file, you must include the absolute path name.
    *
    * @param url the file's url (the url must start with either "http://" or
    *             "file://").
    */
   public static void displayURL(String url){
      boolean windows = isPlatform(WIN_ID);
      boolean mac = isPlatform(Mac_ID);
      String cmd = null;
      try{
         if (windows){
            // cmd = 'rundll32 url.dll,FileProtocolHandler http://...'
            cmd = WIN_PATH + " " + WIN_FLAG + " " + url;
            if(debug)
               System.out.println("cmd=" + cmd);
            Process p = Runtime.getRuntime().exec(cmd);

         }else if(mac) {
            System.out.println("On Mac, trying to open " + url);
//            MRJFileUtils.openURL(url);
            // Following copied from BrowserLaunch.java by:
// * @author Eric Albert (<a href="mailto:ejalbert@cs.stanford.edu">ejalbert@cs.stanford.edu</a>)
// * @version 1.4b1 (Released June 20, 2001)

            try {
      			Class mrjFileUtilsClass = Class.forName("com.apple.mrj.MRJFileUtils");
   			   Method openURL = mrjFileUtilsClass.getDeclaredMethod("openURL",
                                                   new Class[] { String.class });
					openURL.invoke(null, new Object[] { url });
				} catch (InvocationTargetException ite) {
					throw new IOException("InvocationTargetException while calling openURL: " 
                                       + ite.getMessage());
				} catch (IllegalAccessException iae) {
					throw new IOException("IllegalAccessException while calling openURL: " 
                                 + iae.getMessage());
            }catch(ClassNotFoundException cnfx) {
               System.err.println("Class.forName error " + cnfx);
            }catch(NoSuchMethodException nsmx) {
               System.err.println("Method.getDeclaredMethod error " + nsmx);
            }

         }else{
            // Under Unix, Netscape has to be running for the "-remote"
            // command to work.So, we try sending the command and
            // check for an exit value.If the exit command is 0,
            // it worked, otherwise we need to start the browser.
            // cmd = 'netscape -remote openURL(http://www.javaworld.com)'
            cmd = UNIX_PATH + " " + UNIX_FLAG + "(" + url + ")";
            Process p = Runtime.getRuntime().exec(cmd);
            try{
               // wait for exit code -- if it's 0, command worked,
               // otherwise we need to start the browser up.
               int exitCode = p.waitFor();
               if (exitCode != 0){
                  // Command failed, start up the browser
                  // cmd = 'netscape http://www.javaworld.com'
                  cmd = UNIX_PATH + " "+ url;
                  p = Runtime.getRuntime().exec(cmd);
               }
            }catch(InterruptedException x){
               System.err.println("Error bringing up browser, cmd='" +  cmd + "'");
               System.err.println("Caught: " + x);
            }
         } // end non Windows code
         //cmd= rundll32 url.dll,FileProtocolHandler file://D:/www/index.html
//         System.out.println("cmd= " + cmd);
      }catch(IOException x){
         // couldn't exec browser
         System.err.println("Could not invoke browser, command=" + cmd);
         System.err.println("Caught: " + x);
      }
   } // end displayURL

   /**
    * Try to determine whether this application is running under Windows
    * or some other platform by examing the "os.name" property.
    *
    * @return true if this application is running under a Windows OS
    */
   public static boolean isPlatform(String id){
      String os = System.getProperty("os.name");
      if ( os != null && os.startsWith(id))
         return true;
      else
         return false;
   } // end
   /** ---------------------------------------
    * Simple example.   Comment out when done testing
   */
   public static void main(String[] args) {
//      displayURL("http://www.javaworld.com");
//      displayURL("file://D:/www/index.html");
      displayURL("http://127.0.0.1:8080");
      System.exit(0);
   } // end main() */
} // end class
/*
Running: java NormsTools.BrowserControl  -D

cmd=rundll32 url.dll,FileProtocolHandler http://127.0.0.1:8080
>>> This starts IE with error msg: Problem with shortcut.  Unable to open http://127.0.0.1:8080  ???

0 error(s)
*/
This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.