1、今天遇到了需要手动输入http地址打开指定网页的需求,试着做一个用程序打开指定网页的功能,搜了一下,还真有一个现成的例子,稍加改造,实现自己的需求;

2、代码不多,两个文件;如下:

package com.lgp.solr;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List; public class JavaFile { public static List<String> getUrl(String path) {
List<String> urls = new ArrayList<String>();
try {
FileReader reader = new FileReader(path);
BufferedReader br = new BufferedReader(reader);
String str = null;
while ((str = br.readLine()) != null) {
if(str!=null && str.startsWith("http")){
urls.add(str);
}
}
br.close();
reader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return urls;
} }

这个类主要作用是读取指定文件的中的url地址,按行读取,过滤以http开头的行内容;

package com.lgp.solr;
/////////////////////////////////////////////////////////
//Bare Bones Browser Launch //
//Version 1.5 (December 10, 2005) //
//By Dem Pilafian //
//支持: Mac OS X, GNU/Linux, Unix, Windows XP//
//可免费使用 //
///////////////////////////////////////////////////////// import java.io.File;
/**
* @author Dem Pilafian
* @author John Kristian
*/
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List; public class BareBonesBrowserLaunch { public static void main(String[] args) { String path = System.getProperty("app.home"); if(path==null || "".equals(path)){
path = System.getProperty("file.path");
if(path==null || "".equals(path))
throw new RuntimeException("未配置app.home和file.path");
}
List<String> urls = new ArrayList<String>(); if(new File(path).isDirectory()){
File dir = new File(path);
for (File file : dir.listFiles()) {
urls.addAll(JavaFile.getUrl(file.getAbsolutePath()));
}
}else{
urls.addAll(JavaFile.getUrl(path));
} for (String url : urls) {
openURL(url);
} } public static void openURL(String url) {
try {
browse(url);
} catch (Exception e) {
}
} @SuppressWarnings({ "rawtypes", "unchecked" })
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的打开方式。
/*String browspath = System.getProperty("brows.path");
try {
if(browspath != null){
Runtime.getRuntime().exec("browspath " + url);
}
//Runtime.getRuntime().exec("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe " + url);
} catch (Exception e) {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
}
*/
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 });
}
}
}

这是主类,适用于mac和Linux,mac系统,很强大;其中主要使用windows系统,打开默认浏览器;

3、打成可执行的jar包:注意设置main方法的路径,如图

      

从图1一路Next,设置jar包路径后,之后再继续设置图2,最后Finish;

4、通过bat文件运行jar:

run.bat文件:当让前提是设置了javahome和classpath等;

set dir=%CD%
java -Dapp.home=%CD%\config -jar %CD%\auto.jar

在jar的所在路径新建config文件夹,所以配置文件放到此文件夹内,点击run.bat测试运行结果。

Java程序打开指定地址网页的更多相关文章

  1. C# 指定程序打开指定文件

    Process process = new Process(); process.StartInfo.FileName = 指定程序exe文件路径: process.StartInfo.Argumen ...

  2. springmvc java程序文件保存地址的路径问题

    会保存为这种斜杠 不论之前填写的是什么样

  3. Java程序通过代理访问网络

    问题背景 最近工作上有开发爬虫的任务,对目标网站数据进行抓取,由于大部分网站都在国外,无法直接访问,需要通过代理才能登录.爬虫部署的服务器在香港,所以爬虫部署到服务器后,是可以访问目标网站的,但本地开 ...

  4. 《快乐编程大本营》java语言训练班 1课:第一个java程序:你好,范冰冰;

    1Java介绍 2安装java环境JDK 3安装web环境tomcat 4安装开发工具Idea2017 5编写第一个程序 ‘你好,范冰冰!’ 地址: http://code6g.com 1.Java介 ...

  5. 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程

    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...

  6. 一劳永逸Java环境配置,以及编写我的第一个Java程序

    Java环境配置,以及编写我的第一个Java程序 配置步骤 1.下载jdk 2.安装步骤 3.配置环境 4.我的第一个Java程序 配置步骤 网上的教程有很多,方法也都不尽相同.今天我就分享一下我的配 ...

  7. [AIR] AIR程序调用本地默认应用程序打开本地文件

    摘要:      File类提供了一个方法openWithDefaultApplication可以用本地默认应用程序打开指定路径下的文件. 当我用下面语句的时候,可以成功打开桌面文件夹下面的文件: v ...

  8. 程序中打开IE浏览器并访问指定地址

    最简单的方法 Process.Start("iexplore.exe");  //直接打开IE浏览器(打开默认首页)            Process.Start(" ...

  9. 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案

    方案特点: 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案,简化软件开发流程,减少各应用系统相同模块的重复开发工作,提高系统稳定性和可靠性. 基于HTTP协议的开发接口 使用特点在网页 ...

随机推荐

  1. Delphi 的绘图功能[10] - TFONT 类

    Delphi 的绘图功能[10] - TFONT 类 ;DEFAULT_CHARSET     = ;SYMBOL_CHARSET      = ;SHIFTJIS_CHARSET    = ;HAN ...

  2. ural2014 Zhenya moves from parents

    Zhenya moves from parents Time limit: 1.0 secondMemory limit: 64 MB Zhenya moved from his parents’ h ...

  3. w3school之JavaScript学习笔记

    在前端测试过程中,少不了听到开发说到JS,JS在webJavaScript 是浏览器脚本语言(简称JS),主要用来向HTML页面添加交互行为. 学习网址:http://www.w3school.com ...

  4. PAT (Advanced Level) 1085. Perfect Sequence (25)

    可以用双指针(尺取法),也可以枚举起点,二分终点. #include<cstdio> #include<cstring> #include<cmath> #incl ...

  5. Zabbix的安装及简单配置

    Mysql源码安装:Mysql安装脚本 PHP源码安装:基于LNMP的Zabbbix之PHP源码安装 Nginx源码安装:Nginx安装 Zabbix监控端源码安装(包含Server和Agent):l ...

  6. Laravel Auth验证

    laravel自带了auth类和User模型来帮助我们很方便的实现用户登陆.判断. 首先,先配置一下相关参数 app/config/auth.php: model 指定模型 table 指定用户表 p ...

  7. windows下egret环境搭建

    作者:zccst 2,下载安装WebStorm(经了解是西欧捷克开发的,欧洲人对审美不够,所以界面不太好看,但是功能很强大) (1)遇到的问题是注册码问题,不过也很容易在网上找到. (2)如何打开已创 ...

  8. 远离DoS攻击 Windows Server 2016发布DNS政策

             Windows Server 2016的网络功能虽然没有获得像Docker容器和Nano Server同等重要的关注,但是管理员们应该了解的是,新的域名系统(Domain Name ...

  9. 【BZOJ 1367】 1367: [Baltic2004]sequence (可并堆-左偏树)

    1367: [Baltic2004]sequence Description Input Output 一个整数R Sample Input 7 9 4 8 20 14 15 18 Sample Ou ...

  10. displayport

    去年买了一张ATI的显卡,但是很坑爹的是显卡后面没有VGA接口,除了一个HDMI,另外两个接口不认识,后来认识了DVI,用DVI连接显示器,剩下一个接口是什么一直没管,前两天电脑清灰,感兴趣了,去查了 ...