`

java打开默认浏览器网址方法

    博客分类:
  • Java
 
阅读更多

不使用 java.awt.Desktop API,打开默认浏览器访问指定链接的方法

在 Java SE 6 中提供了一套桌面 API 实现与本机桌面 API 的无缝集成,这些桌面 API 使用你的主机操作系统的文件关联以启动与特定文件类型相关联的应用程序。但是因为目前许多客户端并没有安装、部署 JRE 6.0 之后的 Java 运行环境,那么在旧的运行环境中怎样才能调用默认浏览器打开指定的链接呢?

这就是本文的主要内容。

我们把目标平台暂定为 Windows XP 和 Mac OS X。

Windows 平台

可以在控制台中使用 rundll32.exe 调用 url.dll 这个动态连接库打开浏览器访问指定的链接。那么,我们在 Java 程序中就可以使用 Runtime.exec 方法来调用这个命令。(关于 Runtime.exec 可以参考我 blog 中的另一篇文章:Java 程序调用 exe)

String cmd = "rundll32 url.dll,FileProtocolHandler http://www.apple.com";
Runtime.getRuntime().exec(cmd);

当然,以上程序执行前,首先得判断当前的操作系统平台是否是 Windows。

private static final String WIN_ID = "Windows";

public static boolean isWindowsPlatform() ...{
String os = System.getProperty("os.name");

if ( os != null && os.startsWith(WIN_ID))
return true;
else
return false;
}


Mac OS X

在 Mac 里稍微有些复杂。同样,我们需要判断当前操作系统平台是否是 Mac OS X。

private static final String MAC_ID = "Mac";

public static boolean isMacPlatform() ...{
String os = System.getProperty("os.name");

if ( os != null && os.startsWith(MAC_ID))
return true;
else
return false;
}

Apple 公司实现的 JDK 里有这么一个类:com.apple.mrj.MRJFileUtils,在 Mac 下可以使用它提供的方法 openURL 打开浏览器访问链接。为了使我们的程序兼容标准 Java 运行环境,所以使用反射技术来使用这个方法。

public static void openMacURL(String url) ...{
try...{
Class MRJFileUtils = Class.forName("com.apple.mrj.MRJFileUtils");
Method openMethod = MRJFileUtils.getDeclaredMethod("openURL", new Class[] ...{String.class});
openMethod.invoke(MRJFileUtils,new Object[]...{formatString(url)});
} catch(Exception e) ...{
e.printStackTrace();
}
}

formatString( String ) 顾名思义是用来重新格式化目标 URL。

public static String formatString(String str) ...{
String retString="";
String protocol = "";
String host = "";
String path = "";

try ...{
java.net.URL url = new java.net.URL(str);
protocol = url.getProtocol();
host = url.getHost();
path = url.getPath();
} catch (MalformedURLException ex) ...{
path = str;
}

for(int i = 0; i < path.length(); i++) ...{
if(path.charAt(i) == ' ') ...{
retString += "%20";
} else if(path.charAt(i) == '.') ...{
retString += "%2E";
} else ...{
retString += path.substring(i, i + 1);
}
}

if (!protocol.equals("")) ...{
retString = protocol + "://" + host + retString;
} else ...{
retString = host + retString;
}

return retString ;
}

 

分享到:
评论

相关推荐

    java 修改默认浏览器

    开始---命令行--regedit ( 如果键值没有的时候,自己手动添加 ) 1.找到HKEY_CLASSES_ROOT\... ...如果写错,在浏览器里设置为默认浏览器的时候,会提示你当前的浏览器不是默认的. 知道后我们使用java来操作注册表

    Java使用默认浏览器打开指定URL的方法(二种方法)

    方法二: 代码如下://判断当前系统是否支持Java AWT Desktop扩展 if(java.awt.Desktop.isDesktopSupported()){ try{ //创建一个URI实例,注意不是URL java.net.URI uri=java.net.URI.create(“//www.j

    Java使用默认浏览器打开指定URL的方法(二种方法).rar

    本资源“Java使用默认浏览器打开指定URL的方法(二种方法).rar”提供了两种实现这一目标的方法。下面将详细阐述这两种方法。 **方法一:使用Desktop类** Java从1.6版本开始引入了`java.awt.Desktop`类,它提供了...

    Java调用浏览器打开URL地址

    然而,需要注意的是,`Desktop.browse()`方法依赖于操作系统的默认浏览器设置,这意味着如果用户的默认浏览器配置出现问题,或者系统没有安装浏览器,这个方法可能无法正常工作。此外,此方法不适用于所有操作系统,...

    java 打开浏览器

    在Java编程中,有时我们需要实现一个功能,即通过程序来打开本地计算机的默认浏览器来访问特定的URL。这个任务可以通过使用Java的`java.awt.Desktop`类来完成,该类提供了一种与操作系统进行交互的方法,包括打开...

    Java后台打开浏览器所用到的jar包

    这个jar包包含了必要的功能,可以让Java应用程序在后台启动用户的默认浏览器来显示指定的URL。 在Java中,没有内置的方法直接打开浏览器,所以我们通常会借助第三方库。其中一个常用的库是`Desktop`类,它属于Java...

    使用系统默认浏览器打开http网址

    本工程用于展示使用java如何实现这样的功能:使用系统默认浏览器打开http网址;使用用户指定的浏览器打开http网址。 本工程编码方式为:GBK 出现异常即解决方法: 当调用Tool类中的第二个方法时,指定的browerType...

    利用JAVA实现网页浏览器的方法

    4. 桌面组件:用于基本的桌面服务,如在正确的编辑器里打开一个文件,新建一封 Email,或者把一个 URL 发送到默认的 web 浏览器。 5. 桌面组件的使用:使用 desktop.open() 方法可以打开一个文件,使用 desktop.edit...

    java调用本地浏览器的demo

    例如,如果你想在Windows环境下打开默认浏览器,你可以这样写: ```java String url = "http://www.example.com"; Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url); ``` 这段代码会调用...

    java程序中指定某个浏览器打开的实现方法

    在这个方法中,我们使用 Java 的 `Desktop` 类来打开默认浏览器。首先,我们需要获取当前系统的桌面对象,然后使用 `browse` 方法来打开浏览器。这个方法非常简单易用,但需要 Java 6 及更高版本的支持。 方法三:...

    java实现的浏览器

    Java实现的浏览器是一种基于Java编程语言开发的网页浏览软件。这个项目可能是一个学习或实验性质的尝试,旨在理解和实现浏览器的基本功能。虽然描述中提到它做得很粗糙,但对于我们理解Java在构建网络应用中的能力,...

    C#使用默认浏览器打开网页的方法

    本文主要探讨了如何使用C#语言调用用户的默认浏览器打开指定的网址。在互联网应用中,这个功能非常实用,比如在开发一个软件时,你可能需要自动打开一个网页链接,为用户提供直接访问网页的便捷方式。下面详细介绍...

    Android调用默认浏览器打开指定Url的方法实例

    在Android开发中,有时我们需要在应用内调用用户的默认浏览器来打开特定的网页链接,而不是在应用内部使用WebView进行显示。下面将详细解释如何实现这个功能,并分析提供的代码实例。 首先,要调用默认浏览器打开...

    Java调用浏览器打开网页完整实例

    在Java编程中,有时我们需要实现一个功能,即通过程序调用用户的默认浏览器来打开指定的网页。本实例将详细介绍如何使用Java实现这一功能,并提供了一个完整的示例代码。该实例适用于那些想要在Java应用程序中集成...

    java1.8编写,64位,您的浏览器书签专属管理工具,支持模糊查询,支持双击默认浏览器打开,支持多选同时打开等

    "双击表格条目也可以使用默认浏览器打开." "支持多选后右键使用默认浏览器打开." "支持单选、多选、全选、反选、取消." "支持左侧树目录直达." "支持回车键触发搜索事件." "支持语言设置." "更...

    java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)

    2. 打开连接:通过`URLConnection`的`openConnection()`方法获取到`HttpURLConnection`对象,并调用`connect()`方法建立与服务器的连接。 3. 设置请求属性:你可以设置如`setDoOutput(true)`(对于POST请求)或`...

    用java语言实现的Web浏览器

    这需要使用`java.awt.Desktop`类的`browse()`方法来打开系统默认的文本编辑器或源代码查看器。 8. **窗口切换**:为了支持多个页面同时打开,可以使用Java的CardLayout布局管理器或者JTabbedPane组件来实现窗口之间...

    Android调用系统自带浏览器打开网页的实现方法

    首先,启动Android默认浏览器的方法非常简单。通过发送一个隐式Intent,我们可以让系统自动选择一个合适的浏览器来打开指定的URL。以下是一个基本的示例: ```java Uri uri = Uri.parse("https://www.baidu.com"); ...

    java web浏览器

    1. **BareBonesBrowserLaunch**: 这个类通常是一个简单的Java程序,它使用Java的`Runtime.exec()`方法来执行一个操作系统命令,如在Windows上打开默认的浏览器。例如,它可能会执行"rundll32 url.dll,...

Global site tag (gtag.js) - Google Analytics