Java Swing中使用浏览器打开网址

使用浏览器打开网址

/////////////////////////////////////////////////////////    
//  Bare Bones Browser Launch                          //    
//  Version 3.1 (June 6, 2010)                         //    
//  By Dem Pilafian                                    //    
//  Supports:                                          //    
//     Mac OS X, GNU/Linux, Unix, Windows XP/Vista/7   //    
//  Example Usage:                                     //    
//     String url = "http://www.centerkey.com/";       //    
//     BareBonesBrowserLaunch.openURL(url);            //    
//  Public Domain Software -- Free to Use as You Like  //    
/////////////////////////////////////////////////////////    
package com.centerkey.bareBonesBrowserLaunch;    
import java.util.Arrays;    
import javax.swing.JOptionPane;    
public class BareBonesBrowserLaunch {    
	static final String[] browsers = { "google-chrome", "firefox", "opera",    
			"epiphany", "konqueror", "conkeror", "midori", "kazehakase",    
			"mozilla" };    
	static final String errMsg = "Error attempting to launch web browser";    
	public static void openURL(String url) {    
		try { // attempt to use Desktop library from JDK 1.6+    
			Class<?> d = Class.forName("java.awt.Desktop");    
			d.getDeclaredMethod("browse", new Class[] { java.net.URI.class })    
					.invoke(d.getDeclaredMethod("getDesktop").invoke(null),    
							new Object[] { java.net.URI.create(url) });    
			// above code mimicks: java.awt.Desktop.getDesktop().browse()    
		} catch (Exception ignore) { // library not available or failed    
			String osName = System.getProperty("os.name");    
			try {    
				if (osName.startsWith("Mac OS")) {    
					Class.forName("com.apple.eio.FileManager")    
							.getDeclaredMethod("openURL",    
									new Class[] { String.class })    
							.invoke(null, new Object[] { url });    
				} else if (osName.startsWith("Windows"))    
					Runtime.getRuntime().exec(    
							"rundll32 url.dll,FileProtocolHandler " + url);    
				else { // assume Unix or Linux    
					String browser = null;    
					for (String b : browsers)    
						if (browser == null    
								&& Runtime.getRuntime()    
										.exec(new String[] { "which", b })    
										.getInputStream().read() != -1)    
							Runtime.getRuntime().exec(    
									new String[] { browser = b, url });    
					if (browser == null)    
						throw new Exception(Arrays.toString(browsers));    
				}    
			} catch (Exception e) {    
				JOptionPane.showMessageDialog(null,    
						errMsg + "\n" + e.toString());    
			}    
		}    
	}    
}
时间: 2024-11-10 13:32:16

Java Swing中使用浏览器打开网址的相关文章

JAVA SWING嵌入IE浏览器控件JExplorer详细介绍及下载

JExplorer用于在Swing程序中添加Microsoft Internet Explorer的控件.您可以结合JNIWrapper中的共同特点来使用该类库,尤其是当您需要使用低级Internet Explorer的API函数来深度整合MSHTML和DOM功能时. 具体功能: JExplorer具有多种功能特点,方便您在Java程序中整合Internet Explorer Visual Browser组件用于嵌入一个Swing用户界面中,并自动执行HeadlessBrowser进行测试 自动

第二节 Java Swing中的基本容器:JFrame

第二节 基本容器:JFrame 如果要使用Swing创建一个窗口,则直接使用JFrame即可,此类事Component类的子类,常用方法如下: 小试牛刀 创建一个简单的窗口 import java.awt.*; import java.io.*; import javax.swing.*; public class JavaSwingTest { public static void main(String args[]) throws IOException{ test1(); } //创建一

从浏览器打开网址到请求到网页内容超细原理过程详解(免费)

从浏览器打开网址到请求到网页内容超细原理过程详解 史上最牛逼相关知识学员讲解! 看完了不服来战! http://edu.51cto.com/course/course_id-6075.html 长江后浪来了...100米高大浪! 最牛逼老男孩教育28期学员开班2个月左右的分享讲解,不看不知道,一看吓尿你! 运维Q群385168604 架构师Q群390642196 PythonQ群29215534大数据Q群421358633

iOS中打电话、打开网址、发邮件、发短信等

常用小功能 小功能简介 iOS中的很多小功能都是非常简单的,几行代码就搞定了,比如打电话.打开网址.发邮件.发短信等 打电话-方法1 最简单最直接的方式:直接跳到拨号界面 NSURL *url = [NSURL URLWithString:@"tel://10010"]; [[UIApplication sharedApplication] openURL:url]; 缺点 电话打完后,不会自动回到原应用,直接停留在通话记录界面 打电话-方法2 拨号之前会弹框询问用户是否拨号,拨完后能

Java Swing中的SwingWorker

Swing中的SwingWorker主要是用来执行比较耗时的任务. Java doc文档中中包含了一些简单的例子. An abstract class to perform lengthy GUI-interaction tasks in a background thread. Several background threads can be used to execute such tasks. However, the exact strategy of choosing a threa

Java web中不同浏览器间导出Excel文件名称乱码问题解决方案

问题描述: 对于不同浏览器存在对中文编码格式问题,从而在导出Excel文件时,中文文件名出现乱码的情况,即在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,解决如下: 解决方案: [java] view plain copy Date dt=new Date();//如果不需要格式,可直接用dt,dt就是当前系统时间 DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//设置显示格

Java Swing中有关事件机制

看到过两种方式启动主窗体的代码: 方式1: java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new MainJFrame().setVisible(true); } }); 方式2 javax.swing.SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new MainJFrame().setVisible(

java,swing中setvisible()使用注意事项

java中的setvisible(true)目的是使控件可以显示出来,如果该控件已经被显示出来,那么该方法是控件显示在窗口的最前方. 但其使用的位置需要注意.setVisible的对象一般是该对象的使用者调用的.如果setVisible在某个控件的内部,那么在setVisible函数后面添加的控件就显示不出来了. 原因就在于,setVisible(true)并不是告诉JVM让该控件可见,而是在内部调用repaint方法把各个控件画出来进行显示.如果在控件还没完全添加完其他控件就setVisibl

Android调用浏览器打开网址遇到的问题

我自己的手机(一加一代,升级了氢OS),然后在点击游戏内一个"隐私政策"-- 需要打开一个网页,然后就crash了.出错的信息如下: 完全是看不出来,然后我单独写了一个demo来测试那段代码,发现错误的详情是这样: 09-29 11:45:27.576: E/AndroidRuntime(17871): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.