如何在一定条件下执行java程序

时间:2015-06-02 02:07:23

标签: java scheduler

我有一个java程序,我想让它监视一些文件夹,一旦文件夹中有一些新的pdf文件,我想在新的pdf上做一些任务。

我还希望每次新文件进入时都避免重启java程序(pdf部分的任务)因为初始化需要很长时间。我怎么才能意识到这一点?

1 个答案:

答案 0 :(得分:2)

查看WatchService(这里有很好的例子和解释)https://docs.oracle.com/javase/tutorial/essential/io/notification.html

        // Adding directory listener
        WatchService watcher = FileSystems.getDefault().newWatchService();
        Path tempPath = Paths.get("C:\\xampp\\htdocs\\someDirectory");
        tempPath.register(watcher, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_MODIFY);


while (true) {
                WatchKey key = watcher.take();

                // Poll all the events queued for the key.
                for (WatchEvent<?> event : key.pollEvents()) {
                    WatchEvent.Kind kind = event.kind();
                    if (kind.name().endsWith("ENTRY_CREATE")) {
                        // Do something  
                    }
                }
}