Java程序打开指定地址网页

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测试运行结果。

时间: 2024-10-20 19:04:49

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

微信二维码扫一扫打开手机外部浏览器打开指定HTML网页

本经验是在微信中,用户点击支付直接跳转到浏览器中进行WAP支付,或者用扫码的形式变种成H5支付(因为支付宝的扫码付自身就带H5支付,可以通过截取代码演变).下面就具体说一下操作方法把. 用户在微信中操作支付,比如A页面用户点击了支付,此时跳转到B页面,将相关参数携带给B页面(最好将相关参数进行BASE64等加密),B页面判断如果是在微信的环境中给出以下头部 header("Content-type:application/pdf");   header("Content-Di

bat启动java程序,指定lib中jar及classpath

@echo off & setlocal enabledelayedexpansion set LIB_JARS="" cd ..\lib for %%i in (*) do set LIB_JARS=!LIB_JARS!;..\lib\%%i cd ..\bin if ""%1"" == ""debug"" goto debug if ""%1"" == &

winform中linklabel打开指定网站 【转】

周末在家,正好有空写了个小程序,方便转换2进制.8进制和16进制,其中用了个linklabel控件,用来打开我自己的博客,想不到居然看书也没找到怎么才能用这个控件打开网页. 按理说linklabel控件本身就是超链接,理论上来讲应该打开个网页不是啥大问题,结果看了半天书,居然没有写怎么用. 想来想去,如果在ASPX中,自然不存在这个问题,但是在WINFORM中,想打开页面肯定会调用别的程序才对,否则难道我自己画个浏览器出来. 于是开始查找MSDN,看到System.Diagnostics命名空间

第一个java程序-宝山的大学生活

class Demo { public static void mian(String[] args) { System.out.println("Hello World); system.out.print("我要拍一部关于宝山大学生活的电视剧"); } } class是一种格式,现在我还不懂是什么东西.这些东西全是代码,应该先用记事本保存为*.java的格式 在javac 中编译成class格式的文件,再由java程序打开. print 和println有区别,前者打印出

Python 爬取 11 万 Java 程序员信息竟有这些重大发现!

一提到程序猿,我们的脑子里就会出现这样的画面: 或者这样的画面: 心头萦绕的字眼是:秃头.猝死.眼镜.黑白 T 恤.钢铁直男-- 而真实的程序猿们,是每天要和无数数据,以及数十种编程语言打交道.上能手握亿万数据面不改色,下能修改 Bug 奋战两昼夜.他们热爱生活,讨厌 Bug-- 时代在进步,今天的程序猿,你真的了解么? 程序猿的生活,永远和编程语言有关.目前市面上主流的编程语言有 JavaScript.Python.Ruby.PHP.C++.C#. Go.C 和 TypeScript. 时间有

Java 调用系统默认程序打开

比如,我要打开一个PPT文件,怎么办?最简单的办法,调用系统默认的PowerPoint打开. 这里用到的是  Java.awt.Desktop类 Desktop 类允许 Java 应用程序启动已在本机桌面上注册的关联应用程序,以处理 URI 或文件. 支持的操作包括: 启动用户默认浏览器来显示指定的 URI: 启动带有可选 mailto URI 的用户默认邮件客户端: 启动已注册的应用程序,以打开.编辑或打印指定的文件. 下面举个栗子: package com.sujian; import ja

火狐插件simple timer 定时打开指定网页

今天我要介绍的是火狐浏览器一款插件:Simple Timer,该插件是火狐一个可以添加计时器和定时提醒功能插件,该插件的主要作用就是当你的设置在某一个时刻提醒时,插件会自动弹出通知,并且自动打开你想要打开的网页. 对热心于收菜.领淘金币的盆友比较有用,它可以让你在某个时间内打开某一个网页,让你及时收割自己的庄稼,防止偷菜. 1.首先你需要下载和安装Simple Timer.安装插件方法你可以直接到网站下载然后手动安装,或者你也可以打开火狐浏览器中的"添加附加组件"然后搜索下载和安装.

微信中点击链接或者扫描二维码可以直接打开指定网页下载

相信做微信推广的朋友一定都遇到这种情况的,当你的网页中有直接链接apk下载的时候会没有反映的,是因为在微信内是无法下载软件.手机APP等,那么这个时候一般的解决方案就是:跳转到手机浏览器打开我们的推广链接,这个怎么做呢? 月牙跳转是一款基于微信后端开发了一款微信营销下载推广助手,使用了本插件生成的链接,用户在微信任意环境下点击链接或者扫描二维码,可以实现直接跳转手机默认浏览器并打开指定网页. 1.打开 月牙跳转 网址:http://www.aizhuanlove.cn/ 2.准备好我们的推广链接

微信中点击链接或者扫描二维码直接跳转外部浏览器打开指定网页下载

相信做微信推广的朋友一定都遇到这种情况的,当你的网页中有直接链接apk下载的时候会没有反映的,是因为在微信内是无法下载软件.手机APP等,那么这个时候一般的解决方案就是:跳转到手机浏览器打开我们的推广链接,这个要怎么做呢? 桔子跳转是一款基于微信后端开发了一款微信营销下载推广助手,使用了本插件生成的链接,用户在微信任意环境下点击链接或者扫描二维码,可以实现直接跳转手机默认浏览器并打开指定网页. 1.打开 桔子跳转 网址:http://www.qijieworld.com/ 2.准备好我们的推广链