使用java執(zhí)行定時(shí)任務(wù)示例
這是一個(gè)演示如何使用java執(zhí)行定時(shí)任務(wù)的實(shí)例,本實(shí)例開(kāi)始運(yùn)行后不會(huì)自動(dòng)結(jié)束,請(qǐng)?jiān)谶\(yùn)行本實(shí)例后手動(dòng)結(jié)束程序。
package com.hongyuan.test;
import java.awt.Desktop;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.Charset;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Timer;
import java.util.TimerTask;
public class TimerTaskTest {
public static void main(String[] args) throws ParseException {
Timer timer=new Timer();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//延遲指定時(shí)間后執(zhí)行任務(wù)(以毫秒為單位)
timer.schedule(new TimerTask(){
@Override
public void run() {
System.out.println("時(shí)間已經(jīng)流逝1秒!!!!");
}
}, 1000);
//到達(dá)指定時(shí)間后執(zhí)行任務(wù)
timer.schedule(new TimerTask(){
@Override
public void run() {
try {
//打開(kāi)瀏覽器
Desktop.getDesktop().browse(new URI("http://www.baidu.com/"));
} catch (IOException | URISyntaxException e) {
e.printStackTrace();
}
}
}, sdf.parse("2014-04-20 10:20:00"));
//延遲指定時(shí)間后以指定頻率開(kāi)始執(zhí)行任務(wù)
timer.schedule(new TimerTask(){
@Override
public void run() {
BufferedInputStream in=null;
BufferedReader inBr=null;
try {
//執(zhí)行系統(tǒng)命令
Process p=Runtime.getRuntime().exec("ping www.baidu.com");
//讀取輸出
in = new BufferedInputStream(p.getInputStream());
inBr = new BufferedReader(new InputStreamReader(in,
Charset.forName("GBK"))); //我的系統(tǒng)字符集為GBK
String lineStr=null;
while ((lineStr = inBr.readLine()) != null){
//獲得命令執(zhí)行后在控制臺(tái)的輸出信息
System.out.println(lineStr);// 打印輸出信息
}
//檢查命令是否執(zhí)行失敗。
if (p.waitFor() != 0) {
if (p.exitValue() == 1)//p.exitValue()==0表示正常結(jié)束,1:非正常結(jié)束
System.err.println("命令執(zhí)行失敗!");
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} finally{
try {
inBr.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}, 10000, 5000);
}
}
- Java定時(shí)任務(wù)的三種實(shí)現(xiàn)方法
- Java定時(shí)任務(wù)的三種實(shí)現(xiàn)方式
- Quartz實(shí)現(xiàn)JAVA定時(shí)任務(wù)的動(dòng)態(tài)配置的方法
- java實(shí)現(xiàn)多線(xiàn)程之定時(shí)器任務(wù)
- java定時(shí)任務(wù)Timer和TimerTask使用詳解
- 最流行的java后臺(tái)框架spring quartz定時(shí)任務(wù)
- java中 spring 定時(shí)任務(wù) 實(shí)現(xiàn)代碼
- Java 實(shí)現(xiàn)定時(shí)任務(wù)的三種方法
- java 動(dòng)態(tài)增加定時(shí)任務(wù)示例
- Java實(shí)現(xiàn)定時(shí)任務(wù)最簡(jiǎn)單的3種方法
相關(guān)文章
jdbc+jsp實(shí)現(xiàn)簡(jiǎn)單員工管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了jdbc+jsp實(shí)現(xiàn)簡(jiǎn)單員工管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02每日六道java新手入門(mén)面試題,通往自由的道路--JVM
這篇文章主要為大家分享了最有價(jià)值的6道JVM面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,對(duì)hashCode方法的設(shè)計(jì)、垃圾收集的堆和代進(jìn)行剖析,感興趣的小伙伴們可以參考一下2021-06-06Java中類(lèi)與對(duì)象的相關(guān)知識(shí)點(diǎn)總結(jié)
對(duì)象是類(lèi)實(shí)例化出來(lái)的,對(duì)象中含有類(lèi)的屬性,類(lèi)是對(duì)象的抽象,下面這篇文章主要給大家介紹了關(guān)于Java中類(lèi)與對(duì)象的一些相關(guān)知識(shí)點(diǎn),需要的朋友可以參考下2021-11-11Vert-x-通過(guò)異步的方式使用JDBC連接SQL
在這篇文章中,我們將會(huì)看到怎樣在vert.x應(yīng)用中使用HSQL,當(dāng)然也可以使用任意JDBC,以及使用vertx-jdbc-client提供的異步的API,這篇文章的代碼在github2016-01-01Mybatis查詢(xún)返回Map<String,Object>類(lèi)型的實(shí)現(xiàn)
本文主要介紹了Mybatis查詢(xún)返回Map<String,Object>類(lèi)型的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Java服務(wù)剛啟動(dòng)時(shí)接口超時(shí)排查全過(guò)程
這篇文章主要為大家介紹了Java服務(wù)剛啟動(dòng)時(shí),一小波接口超時(shí)排查全過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Java多線(xiàn)程并發(fā)之ReentrantLock
這篇文章主要介紹了Java?多線(xiàn)程并發(fā)ReentrantLock,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2023-04-04將java普通項(xiàng)目打包成exe可執(zhí)行文件的步驟記錄
將JAVA代碼打包為exe文件,會(huì)讓程序運(yùn)行更加方便,這篇文章主要給大家介紹了關(guān)于將java普通項(xiàng)目打包成exe可執(zhí)行文件的相關(guān)資料,需要的朋友可以參考下2021-07-07