1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
package javaapplication7;
import java.io.IOException;
/* Note - you must include the url type -- either "http://" or
* "file://".
*/
public class OpenWebBrowser {
/**
* Display a file in the system browser. 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 openWebPage(String url) {
boolean windows = isWindowsPlatform();
String web_page_url = null;
try {
if (windows) {
// cmd = 'rundll32 url.dll,FileProtocolHandler http://...'
web_page_url = WIN_PATH + " " + WIN_FLAG + " " + url;
Process p = Runtime.getRuntime().exec(web_page_url);
} 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)'
web_page_url = UNIX_PATH + " " + UNIX_FLAG + "(" + url + ")";
Process p = Runtime.getRuntime().exec(web_page_url);
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'
web_page_url = UNIX_PATH + " " + url;
p = Runtime.getRuntime().exec(web_page_url);
}
} catch (InterruptedException x) {
System.err.println("Error bringing up browser, cmd='" +
web_page_url + "'");
System.err.println("Caught: " + x);
}
}
} catch (IOException x) {
// couldn't exec browser
System.err.println("Could not invoke browser, command=" + web_page_url);
System.err.println("Caught: " + x);
}
}
/**
* 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 isWindowsPlatform() {
String os = System.getProperty("os.name");
if (os != null && os.startsWith(WIN_ID)) {
return true;
} else {
return false;
}
}
public static void main(String[] args) {
openWebPage("http://www.yahoo.com");
}
// 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";
// 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";
} |
Partager