org.jivesoftware.spark.util
Class BrowserLauncher
java.lang.Object
org.jivesoftware.spark.util.BrowserLauncher
public class BrowserLauncher
- extends java.lang.Object
BrowserLauncher is a class that provides one static method, openURL, which opens the default
web browser for the current user of the system to the given URL. It may support other
protocols depending on the system -- mailto, ftp, etc. -- but that has not been rigorously
tested and is not guaranteed to work.
Yes, this is platform-specific code, and yes, it may rely on classes on certain platforms
that are not part of the standard JDK. What we're trying to do, though, is to take something
that's frequently desirable but inherently platform-specific -- opening a default browser --
and allow programmers (you, for example) to do so without worrying about dropping into native
code or doing anything else similarly evil.
Anyway, this code is completely in Java and will run on all JDK 1.1-compliant systems without
modification or a need for additional libraries. All classes that are required on certain
platforms to allow this to run are dynamically loaded at runtime via reflection and, if not
found, will not cause this to do anything other than returning an error when opening the
browser.
There are certain system requirements for this class, as it's running through Runtime.exec(),
which is Java's way of making a native system call. Currently, this requires that a Macintosh
have a Finder which supports the GURL event, which is true for Mac OS 8.0 and 8.1 systems that
have the Internet Scripting AppleScript dictionary installed in the Scripting Additions folder
in the Extensions folder (which is installed by default as far as I know under Mac OS 8.0 and
8.1), and for all Mac OS 8.5 and later systems. On Windows, it only runs under Win32 systems
(Windows 95, 98, and NT 4.0, as well as later versions of all) that include the
FileProtocolHandler method in url.dll, which has been the case for all systems that I have
tested. On other systems, this drops back from the inherently platform-sensitive concept of
a default browser and simply attempts to launch Netscape via a shell command.
This code is Copyright 1999 by Eric Albert (ejalbert@cs.stanford.edu) and may be redistributed
or modified in any form without restrictions as long as the portion of this comment from this
paragraph through the end of the comment is not removed. The author requests that he be
notified of any application, applet, or other binary that makes use of this code, but that's
more out of curiosity than anything and is not required. This software includes no warranty.
Credits:
Steven Spencer, JavaWorld magazine (Java Tip 66)
Ron B. Yeh, ZeroG
Ben Engber, The New York Times
- Version:
- 1.1 (Released July 3, 1999)
- Author:
- Eric Albert (ejalbert@cs.stanford.edu), loki der quaeler (modified for osX before adding to weltschmerz frameworks)
Method Summary |
protected static void |
launchForOSX(java.lang.String url)
THERE HAS GOT TO BE A BETTER WAY TO DO THIS -- email out to mailing
lists; waiting for reply. |
static void |
openURL(java.lang.String url)
Attempts to open the default web browser to the given URL. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
OS_X_URL_FILE_NAME
protected static final java.lang.String OS_X_URL_FILE_NAME
- See Also:
- Constant Field Values
openURL
public static void openURL(java.lang.String url)
throws java.io.IOException
- Attempts to open the default web browser to the given URL.
- Parameters:
url
- The URL to open
- Throws:
java.io.IOException
- If the web browser could not be located or does not run
launchForOSX
protected static void launchForOSX(java.lang.String url)
throws java.io.IOException
- THERE HAS GOT TO BE A BETTER WAY TO DO THIS -- email out to mailing
lists; waiting for reply.
- Throws:
java.io.IOException