
Javaを利用して常駐するタスクスケジューラのようなプログラムを作成しています。
大体は完成したのですが、どうしてもわからない部分があります。
「起動したらX分毎にバッチファイル起動!」
はできるのですが、
「起動したら60分毎にバッチファイル起動!」
※ただしバッチファイル起動時間は 01:05、02:05、03:05 など指定間隔ごとにする
プラス、
「起動したら毎日23:55にバッチファイル起動!」
が思いつきません。
====================================
import java.awt.AWTException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.TrayIcon.MessageType;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
import java.util.Timer;
import java.util.TimerTask;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Task {
/**
* メール振分タスク
*/
public static void main(String[] args) throws Exception {
try {
// 多重起動チェック
@SuppressWarnings("resource")
FileChannel fc = new FileOutputStream(new File("LockFile")).getChannel();
FileLock lock = fc.tryLock();
if (lock == null) {
//既に起動されているので終了する
JFrame frame = new JFrame();
JOptionPane.showMessageDialog(frame, "すでに起動されています!");
return;
}
//起動メッセージ表示
JFrame frame = new JFrame();
JOptionPane.showMessageDialog(frame, "タスクを起動しました!");
new Task();
} catch (Exception e) {
}
}
/** コンストラクタ */
public Task() throws IOException, AWTException {
// アイコンイメージの読み込み
Image image = ImageIO.read(Thread.currentThread().getContextClassLoader().getResourceAsStream("16_16.png"));
// トレイアイコン生成
final TrayIcon icon = new TrayIcon(image);
// イベント登録
icon.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
icon.displayMessage("メール配信","メール配信システム アイコンがダブルクリックされました",MessageType.WARNING);
}
});
// ポップアップメニュー
PopupMenu menu = new PopupMenu();
// 終了メニュー
MenuItem exitItem = new MenuItem("終了");
exitItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
// メニューにメニューアイテムを追加
menu.add(exitItem);
icon.setPopupMenu(menu);
// タスクトレイに格納
SystemTray.getSystemTray().add(icon);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 01_メール受信起動.bat
TimerTask task0 = new TimerTask() {
@Override
public void run() {
icon.displayMessage("タイマー2分","メールチェックします\n" , MessageType.INFO);
// メールチェック起動
String cmd = "cmd.exe /c start c:/dummy.bat";
try {
Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
e.printStackTrace();
}
}
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(task0, 0, 2 * 60 * 1000); // 2分ごと
}
}
No.1ベストアンサー
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JTableでスクロールバーが表示...
-
どうしてもプログラムが動いて...
-
HTMLでのTableタグデータ取得方法
-
eclipseに記述したjavaファイル...
-
文字列を数式に
-
C言語のポインターに関する警告
-
IF関数でEmpty値を設定する方法。
-
ORA-01858: 数値を指定する箇所...
-
ループ処理の際、最後だけ","を...
-
System.err. printlnとSystem.o...
-
System.exit()の値を取得したい
-
動的配列が存在(要素が有る)か...
-
カタカナの小文字を大文字に変...
-
javaで質問です。 文字列2023/2...
-
1~100までの数字を表示したい
-
【C#】ハッシュテーブル(連想...
-
streamで送信されたArrayListを...
-
0dの意味を教えてください
-
VBAで配列の計算
-
[Ljava.lang.Stringってなんですか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
ColabでのPytorchのエラー
-
<forEach> 内で供給された "ite...
-
「例外 *** は対応する try 文...
-
Selenium IDEでexportしたコー...
-
javaでアプレットの描画が出来ない
-
データの外挿について
-
ActionForm form にnullが入っ...
-
(急募)一覧表画面でパスワード...
-
(急募)一覧画面表示がうまくい...
-
(急募)「.csv」ファイルをテー...
-
Java での グローバルIP取得
-
シャットダウンフックが呼ばれない
-
GridBagLayoutについての質問
-
文字列を数式に
-
生年月日と今日の日付から年齢...
-
JTableでスクロールバーが表示...
-
干支の計算で。。。
-
Javaを使ってデジタル時計を作...
-
JAVA 乱数で同じ数字を出さな...
おすすめ情報