Java调用系统浏览器打开链接的方法

一、方法一:利用java.lang.ProcessBuilder类创建系统进程的能力,通过浏览器地址启动浏览器,并将网址作为参数传送给浏览器

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
/**
 * 利用java.lang.ProcessBuilder类创建系统进程的能力,通过浏览器地址启动浏览器,并将网址作为参数传送给浏览器。
 * ProcessBuilder类是J2SE
 * 1.5在java.lang中新添加的一个新类,此类用于创建操作系统进程,它提供一种启动和管理进程(也就是应用程序)的方法。
 */public class OpenExplorerTest1 {
public static void main(String args[]) {
try {
ProcessBuilder proc = new ProcessBuilder(
"C:Program FilesInternet Exploreriexplore.exe",
proc.start();
} catch (Exception e) {
System.out.println("Error executing progarm.");
}
}
}

二、方法二:Java调用系统默认浏览器打开链接

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
/**
 *  java调用系统默认浏览器打开链接
 */public class OpenExplorerTest2 {
public static void main(String args[]) {
if (java.awt.Desktop.isDesktopSupported()) {
try {
// 创建一个URI实例
java.net.URI uri = java.net.URI.create("http://www.cnblogs.com/lsgwr/");
// 获取当前系统桌面扩展
java.awt.Desktop dp = java.awt.Desktop.getDesktop();
// 判断系统桌面是否支持要执行的功能
if (dp.isSupported(java.awt.Desktop.Action.BROWSE)) {
// 获取系统默认浏览器打开链接
dp.browse(uri);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

三、方法三:Java调用系统默认浏览器打开链接

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
import java.io.IOException;
  
/**
 * java调用系统默认浏览器打开链接
 *
 * @author Administrator
 *
 */public class OpenExplorerTest3 {
public static void main(String args[]) {
try {
 Runtime.getRuntime().exec(
 "cmd   /c   start   http://bbs.csdn.net/topics/390157559 ");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

四、方法四:Java调用系统默认浏览器打开链接

01
02
03
04
05
06
07
08
09
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
import java.io.IOException;
import java.lang.reflect.Method;
  
/**
 * java调用系统默认浏览器打开链接
 */public class OpenExplorerTest4 {
  
    // 主方法 测试类
    public static void main(String[] args) {
        String url = "http://iteye.blog.163.com/";
        try {
            OpenExplorerTest4.browse(url);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
  
    private static void browse(String url) throws Exception {
        // 获取操作系统的名字
        String osName = System.getProperty("os.name", "");
        if (osName.startsWith("Mac OS")) {
            // 苹果的打开方式
            Class fileMgr = Class.forName("com.apple.eio.FileManager");
            Method openURL = fileMgr.getDeclaredMethod("openURL",
                    new Class[] { String.class });
            openURL.invoke(null, new Object[] { url });
        } else if (osName.startsWith("Windows")) {
            // windows的打开方式。
            Runtime.getRuntime().exec(
                    "rundll32 url.dll,FileProtocolHandler " + url);
        } else {
            // Unix or Linux的打开方式
            String[] browsers = { "firefox", "opera", "konqueror", "epiphany",
                    "mozilla", "netscape" };
            String browser = null;
            for (int count = 0; count < browsers.length && browser == null; count++)
                // 执行代码,在brower有值后跳出,
                // 这里是如果进程创建成功了,==0是表示正常结束。
                if (Runtime.getRuntime()
                        .exec(new String[] { "which", browsers[count] })
                        .waitFor() == 0)
                    browser = browsers[count];
            if (browser == null)
                throw new Exception("Could not find web browser");
            else
                // 这个值在上面已经成功的得到了一个进程。
                Runtime.getRuntime().exec(new String[] { browser, url });
        }
    }
}

五、方法五:通过获取环境变量的浏览器路径,然后启动浏览器

01
02
03
04
05
06
07
08
09
10
11
12
private static void browse3(String url) throws Exception {
    String firefox = "C:Program FilesMozilla Firefoxfirefox.exe";
    Map map = System.getenv();
    for (Object key : map.keySet()) {
        String value = (String) map.get(key);
        if (value.contains("firefox.exe")) {
            firefox = value;
            break;
        }
    }
    Runtime.getRuntime().exec(new String[]{firefox, url});
}

发表评论

欢迎阅读『Java调用系统浏览器打开链接的方法|Java、浏览器兼容|Nick Tan-梓潼Blog』