`
kingsleylong
  • 浏览: 55009 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[转载]使用Java跨平台调用本地浏览器

    博客分类:
  • Java
阅读更多
J2SE 6 新增了 java.awt.Desktop ,这套桌面 API 使用你的主机操作系统的文件关联以启动与特定文件类型相关联的应用程序。调用本地浏览器非常方便,且跨平台适用。

public static void runBroswer(String webSite) {   
        try {   
            Desktop desktop = Desktop.getDesktop();   
            if (Desktop.isDesktopSupported() && desktop.isSupported(Desktop.Action.BROWSE)) {   
                URI uri = new URI("webSite");   
                desktop.browse(uri);   
            }   
        } catch (IOException ex) {   
            ex.printStackTrace();   
        } catch (URISyntaxException ex) {   
            ex.printStackTrace();   
        }   
    }  


J2SE 5及之前可使用以下代码

public static void openURL(String url) {   
        String osName = System.getProperty("os.name");   
        try {   
            if (osName.startsWith("Mac")) {//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++) {   
                    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});   
                }   
            }   
        } catch (Exception ex) {   
            ex.printStackTrace();   
        }   
    }  
public static void openURL(String url) {
        String osName = System.getProperty("os.name");
        try {
            if (osName.startsWith("Mac")) {//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++) {
                    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});
                }
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }


如果是Applet则用以下代码直接访问链接

AppletContext context = getAppletContext();   
context.showDocument(new URL("http://blog.csdn.net/casularm"), "_blank");  


本文转载自:http://blog.csdn.net/casularm/archive/2008/11/28/3401018.aspx
分享到:
评论

相关推荐

    跨平台使用swing调用浏览器

    跨平台使用swing调用浏览器,由于现在很多的机器的jre或者jdk都是1.5版本及以下的不能使用jdk 1.6 desktop类。

    jre-7 for mac.rar

    官网下的jdk1.7,苹果用户可以直接下载,下载之后解压打开就可以使用,如果需要更多资源,...用Java你可以实现HotJava浏览器(支持Java applet)动态效果显示,跨平台调用、动态的Web、以及强大的Internet计算功能。

    使用javascript调用webservice

    由于JavaScript是所有主流浏览器都使用的编程语言,因此,使用微软ASP.NET+AJAX技术开发的网页可以在不同平台的浏览器中正常浏览,至于Web Service本身就是跨平台的,例如,一个Java开发的网站完全可以聚合由.NET...

    java开源包1

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包8

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    JAVA上百实例源码以及开源项目源代码

     Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,...

    JAVA上百实例源码以及开源项目

     Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,...

    java开源包11

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包4

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包6

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包9

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包101

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包5

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包10

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    跨平台移动端开发NativeScript.zip

    NativeScript 可以使用 Javascript,CSS, XML 创建真正的 Native 跨平台应用,支持 iOS Android,NativeScript 将您的跨平台代码翻译成目标平台的代码。UI 使用 XML 描述,CSS 样式,在编译时将 UI 转化成本地原生...

    java开源包3

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包2

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包7

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    Java资源包01

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    Fyne 是一个 Go 语言开发的易用的 UI工具包,提供基于 OpenGL 的跨平台图形界面应用开发支持.zip

    opengl OpenGL(Open Graphics Library)是一个...4. 跨平台和跨语言:OpenGL 可以在所有主要的操作系统(如 Windows、macOS 和 Linux)上运行,并且有各种编程语言的绑定,包括 C、C++、Python、Java 和许多其他语言。

Global site tag (gtag.js) - Google Analytics