加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用java 打开一个网页(两个方法)

(2013-03-08 14:25:50)
分类: java
参考:http://blog.csdn.net/w627782664/article/details/7163044
      http://www.cnblogs.com/ayan/archive/2011/12/29/2306805.html

方法一: 不使用java.awt.Desktop 方法 不跨平台
String url = "http://www.google.com/";         
2 BareBonesBrowserLaunch.openURL(url); 

BareBonesBrowserLaunch.java 的源码

/////////////////////////////////////////////////////////  
 //Bare Bones Browser Launch                            //  
 //Version 1.5 (December 10, 2005)                    //  
 //By Dem Pilafian                                                //  
 //支持: Mac OS X, GNU/Linux, Unix, Windows XP//  
 //可免费使用                                                        //
 /////////////////////////////////////////////////////////  
   
   
 import java.io.IOException;  
 import java.lang.reflect.InvocationTargetException;  
 import java.lang.reflect.Method;  
 import javax.swing.JOptionPane;  
   
 public class BareBonesBrowserLaunch {  
   
     public static void openURL(String url) {  
         try {  
             browse(url);  
         } catch (Exception e) {  
         }  
     }  
   
     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 });  
         }  
     }  
 }

方法二: 使用Java SE 6.0的新功能
  比这样先判断操作系统类型再执行特定操作方便多了 ,因为java.awt.Desktop类的java.awt.Desktop.isDesktopSupported()可以获取当前系统是否支持java awt桌面扩展.如果支持可以获取当前系统的Desktop  
  1. import java.awt.Desktop;  
  2. import java.io.IOException;  
  3. import java.net.URI;  
  4. import java.net.URISyntaxException;  
  5.   
  6. public class TestBrowse  
  7.  public static void main(String[] a)  
  8.   try  
  9.    URI uri new URI("http://www.baidu.com");  
  10.    Desktop desktop null 
  11.    if (Desktop.isDesktopSupported())  
  12.     desktop Desktop.getDesktop();  
  13.     
  14.    if (desktop != null 
  15.     desktop.browse(uri);  
  16.   catch (IOException ioe)  
  17.    ioe.printStackTrace();  
  18.   catch (URISyntaxException e)  
  19.    e.printStackTrace();  
  20.    
  21.   

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有