public final class WebBrowser extends Object
Modifier and Type | Field and Description |
---|---|
private static String |
ALL_METHODS_ERRMSG
IOException formatting string used when all browsing methods
have failed. |
private static org.slf4j.Logger |
logger
Logging object.
|
private static String |
NO_BROWSER_ERRMSG
IOException formatting string used by
openOldStyle(String) when no browsers could be identified on
the system. |
private static String |
THINGS_DUN_BROKE_ERRMSG
Message displayed to the user when all browsing methods have failed.
|
private static List<String> |
unixBrowsers
Probe Unix-like systems for these browsers, in this order.
|
Modifier | Constructor and Description |
---|---|
private |
WebBrowser()
Do not create instances of
WebBrowser . |
Modifier and Type | Method and Description |
---|---|
static void |
browse(String url)
Attempts to use the system default browser to visit
url . |
private static boolean |
isMac()
Test for whether or not the current platform is Mac OS X.
|
private static boolean |
isUnix()
Test for whether or not the current platform is some form of
"unix" (but not OS X!).
|
private static boolean |
isWindows()
Test for whether or not the current platform is Windows.
|
static void |
main(String[] args) |
private static boolean |
openNewStyle(String url)
Use the functionality within
Desktop to try opening
the user's preferred web browser. |
private static void |
openOldStyle(String url)
Uses
Runtime.exec(String) to launch the user's preferred web
browser. |
private static boolean |
tryUserSpecifiedBrowser(String url)
Attempts to launch the browser pointed at by
the "idv.browser.path" IDV property, if it has been set.
|
static boolean |
useBrowserForUrl(String url)
Test whether or not a given URL should be opened in a web browser.
|
private static final org.slf4j.Logger logger
private static final List<String> unixBrowsers
private static final String ALL_METHODS_ERRMSG
IOException
formatting string used when all browsing methods
have failed.private static final String NO_BROWSER_ERRMSG
IOException
formatting string used by
openOldStyle(String)
when no browsers could be identified on
the system.private static final String THINGS_DUN_BROKE_ERRMSG
private WebBrowser()
WebBrowser
.public static void browse(String url)
url
. Tries
looking for and executing any browser specified by the IDV property
"idv.browser.path".
If the property wasn't given or there was an error, try the new (as of Java 1.6) way of opening a browser.
If the previous attempts failed (or we're in 1.5), we finally try some more primitive measures.
Note: if you are trying to use this method with a
JTextPane
you may need to turn off editing via
JTextComponent.setEditable(boolean)
.
url
- URL to visit.tryUserSpecifiedBrowser(String)
,
openNewStyle(String)
,
openOldStyle(String)
public static boolean useBrowserForUrl(String url)
url
- URL to test. Cannot be null
.true
if url
begins with either
"http:" or "https:".private static boolean openNewStyle(String url)
Desktop
to try opening
the user's preferred web browser.url
- URL to visit.true
if things look ok, false
if there
were problems.private static void openOldStyle(String url)
Runtime.exec(String)
to launch the user's preferred web
browser. This method isn't really recommended unless you're stuck with
Java 1.5.
Note that the browsers need to be somewhere in the PATH, as this
method uses the which
command (also needs to be in the PATH!).
url
- URL to visit.private static boolean tryUserSpecifiedBrowser(String url)
url
- URL to open.true
if the command-line was executed,
false
if either the command-line wasn't launched or
"idv.browser.path" was not set.private static boolean isMac()
private static boolean isUnix()
private static boolean isWindows()