java 打开默认浏览器_如何使用java打开默认的浏览器

java.awt.Desktop是你正在寻找的类。

import java.awt.Desktop; import java.net.URI; // ... if(Desktop.isDesktopSupported()) { Desktop.getDesktop().browse(new URI("http://www.example.com")); }

这是我的代码。 它会在默认浏览器中打开给定的URL(跨平台解决scheme)。

import java.awt.Desktop; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; public class Browser { public static void main(String[] args) { String url = "http://www.google.com"; if(Desktop.isDesktopSupported()){ Desktop desktop = Desktop.getDesktop(); try { desktop.browse(new URI(url)); } catch (IOException | URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ Runtime runtime = Runtime.getRuntime(); try { runtime.exec("xdg-open " + url); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }

对于我解决与Desktop.isDesktopSupported()不起作用(Windows 7和Ubuntu的)。 请尝试从java代码打开浏览器:

视窗:

Runtime rt = Runtime.getRuntime(); String url = "http://stackoverflow.com"; rt.exec("rundll32 url.dll,FileProtocolHandler " + url);

苹果电脑

Runtime rt = Runtime.getRuntime(); String url = "http://stackoverflow.com"; rt.exec("open " + url);

Linux的:

Runtime rt = Runtime.getRuntime(); String url = "http://stackoverflow.com"; String[] browsers = { "epiphany", "firefox", "mozilla", "konqueror", "netscape", "opera", "links", "lynx" }; StringBuffer cmd = new StringBuffer(); for (int i = 0; i < browsers.length; i++) if(i == 0) cmd.append(String.format( "%s \"%s\"", browsers[i], url); else cmd.append(String.format(" || %s \"%s\"", browsers[i], url); // If the first didn't work, try the next browser and so on rt.exec(new String[] { "sh", "-c", cmd.toString() });

如果您想要有多平台应用程序,则需要添加操作系统检查(例如):

String os = System.getProperty("os.name").toLowerCase();

视窗:

os.indexOf("win") >= 0

苹果电脑:

os.indexOf("mac") >= 0

Linux的:

os.indexOf("nix") >=0 || os.indexOf("nux") >=0

您也可以使用Runtime来创build跨平台解决scheme:

import java.awt.Desktop; import java.net.URI; public class App { public static void main(String[] args) throws Exception { String url = "http://stackoverflow.com"; if (Desktop.isDesktopSupported()) { // Windows Desktop.getDesktop().browse(new URI(url)); } else { // Ubuntu Runtime runtime = Runtime.getRuntime(); runtime.exec("/usr/bin/firefox -new-window " + url); } } }

正如Tim Cooper提供的答案中所指出的那样, java.awt.Desktop从Java版本6(1.6)开始就提供了这种function,但有以下警告:

使用isDesktopSupported()方法来确定桌面API是否可用。 在Solaris操作系统和Linux平台上,此API依赖于Gnome库。 如果这些库不可用,则此方法将返回false。

对于不支持或提供java.awt.Desktop平台,请查看BrowserLauncher2项目。 它由Eric Albert最初编写和发布的BrowserLauncher类派生并稍微更新。 在21世纪初,我在一个多平台的Java应用程序中成功地使用了原始的BrowserLauncher类,该应用程序在本地通过Web浏览器界面运行。

请注意,BrowserLauncher2是根据GNU宽松通用公共许可证授权的 。 如果该许可证不可接受,请查找具有非常自由许可证的原始BrowserLauncher的副本:

此代码由Eric Albert(ejalbert@cs.stanford.edu)版权所有1999-2001,并且可以以任何forms重新分发或修改,不受任何限制,只要本评论的部分从本段到评论末尾不被删除。 作者要求他通知使用这个代码的任何应用程序,小应用程序或其他二进制文件,但是这比其他任何东西都好奇,并不是必需的。 该软件不包含保修。 作者不负责任何数据或function的丢失或使用此软件的任何不利或意想不到的影响。

学分:JavaWorld杂志(Java Tip 66)的Steven Spencer也感谢Ron B. Yeh,Eric Shapiro,Ben Engber,Paul Teitlebaum,Andrea Cantatore,Larry Barowski,Trevor Bedzek,Frank Miedrich和Ron Rabakukk

除了BrowserLauncher2之外的其他项目也可能更新了原始的BrowserLauncher,以便考虑到自2001年以来浏览器和默认系统安全设置的更改。

它很简单,只需写下面的代码:

String s = "http://www.google.com"; Desktop desktop = Desktop.getDesktop(); desktop.browse(URI.create(s));

或者如果你不想加载URL,那就把你的浏览器名称写入string值,

String s = "chrome"; Desktop desktop = Desktop.getDesktop(); desktop.browse(URI.create(s));

执行程序后会自动用空的URL打开浏览器

在窗口调用“CMD / K启动http://www.example.com ”事实上,你总是可以使用启动命令调用“默认”程序。 为了开始abc.mp3将调用默认的MP3播放器,并加载所请求的MP3文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值