如何在特定条件下执行 java 程序
how to execute java program under certain condition
我有一个 java 程序,我想让它监视一些文件夹,一旦文件夹有一些新的 pdf 文件,我想对新的 pdf 执行一些任务。
而且我还想避免每次有新文件进来时重新启动java程序(pdf部分的任务),因为初始化需要很长时间。我怎样才能意识到呢?
查看 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
}
}
}
我有一个 java 程序,我想让它监视一些文件夹,一旦文件夹有一些新的 pdf 文件,我想对新的 pdf 执行一些任务。
而且我还想避免每次有新文件进来时重新启动java程序(pdf部分的任务),因为初始化需要很长时间。我怎样才能意识到呢?
查看 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
}
}
}