java任务计划

这是一个演示如何使用java执行定时任务的实例,本实例开始运行后不会自动结束,请在运行本实例后手动结束程序。
标签: <无>

代码片段(2)[全屏查看所有代码]

1. [文件] TimerTaskTest.java ~ 3KB     下载(10)    

01package com.hongyuan.test;
02 
03import java.awt.Desktop;
04import java.io.BufferedInputStream;
05import java.io.BufferedReader;
06import java.io.IOException;
07import java.io.InputStreamReader;
08import java.net.URI;
09import java.net.URISyntaxException;
10import java.nio.charset.Charset;
11import java.text.ParseException;
12import java.text.SimpleDateFormat;
13import java.util.Timer;
14import java.util.TimerTask;
15 
16public class TimerTaskTest {
17 
18    public static void main(String[] args) throws ParseException {
19         
20        Timer timer=new Timer();
21        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
22         
23        //延迟指定时间后执行任务(以毫秒为单位)
24        timer.schedule(new TimerTask(){
25 
26            @Override
27            public void run() {
28                System.out.println("时间已经流逝1秒!!!!");
29            }
30             
31        }, 1000);
32         
33        //到达指定时间后执行任务
34        timer.schedule(new TimerTask(){
35 
36            @Override
37            public void run() {
38                try {
39                    //打开浏览器
40                    Desktop.getDesktop().browse(new URI("http://www.baidu.com/"));
41                } catch (IOException | URISyntaxException e) {
42                    e.printStackTrace();
43                }
44            }
45             
46        }, sdf.parse("2014-04-20 10:20:00"));
47         
48        //延迟指定时间后以指定频率开始执行任务
49        timer.schedule(new TimerTask(){
50 
51            @Override
52            public void run() {
53                BufferedInputStream in=null;
54                BufferedReader inBr=null;
55                try {
56                    //执行系统命令
57                    Process p=Runtime.getRuntime().exec("ping www.baidu.com");
58                     
59                    //读取输出
60                    in = new BufferedInputStream(p.getInputStream());
61                    inBr = new BufferedReader(new InputStreamReader(in,
62                            Charset.forName("GBK"))); //我的系统字符集为GBK 
63                    String lineStr=null
64                    while ((lineStr = inBr.readLine()) != null){ 
65                        //获得命令执行后在控制台的输出信息
66                        System.out.println(lineStr);// 打印输出信息 
67                    }
68                     
69                    //检查命令是否执行失败。 
70                    if (p.waitFor() != 0) { 
71                        if (p.exitValue() == 1)//p.exitValue()==0表示正常结束,1:非正常结束 
72                            System.err.println("命令执行失败!"); 
73                    }
74                     
75                } catch (IOException e) {
76                    e.printStackTrace();
77                } catch (InterruptedException e) {
78                    e.printStackTrace();
79                } finally{
80                    try {
81                        inBr.close(); 
82                        in.close();
83                    } catch (IOException e) {
84                        e.printStackTrace();
85                    }
86                }
87            }
88             
89        }, 10000, 5000);
90         
91    }
92 
93}

2. [图片] 20140420102859.png    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值