2012-01-12 7 views
1
public static void main (String args[]) throws Exception { 
     Path _directotyToWatch = Paths.get(args[0]); 
     WatchService watcherSvc = FileSystems.getDefault().newWatchService(); 
     WatchKey watchKey = _directotyToWatch.register(watcherSvc, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY); 
     while (true) { 
      watchKey=watcherSvc.take(); 
      for (WatchEvent<?> event: watchKey.pollEvents()) { 
       WatchEvent<Path> watchEvent = castEvent(event); 
       System.out.println(event.kind().name().toString() + " " + _directotyToWatch.resolve(watchEvent.context())); 
       watchKey.reset(); 
      } 
     } 
    } 

上記の例では、ウォッチディレクトリのパスはコンソール引数から取得されています。 ディレクトリパスを静的に渡したいと思います。WatchServiceは、ファイル作成のためのspecficディレクトリを監視します。

試してみました。Paths.get( "O:\\ test");しかし、例外

Exception in thread "main" java.lang.NoClassDefFoundError: java/nio/file/Paths 
    at JSR203_NIO2_WatchFolder.main(JSR203_NIO2_WatchFolder.java:40) 
Caused by: java.lang.ClassNotFoundException: java.nio.file.Paths 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
+1

'Paths.get( "O:\テスト") ; '私はそれがコンパイルされることを疑う - 「不法なエスケープ文字」。 –

+0

\t \t Paths.get( "O:\\ test") – Sushant

+0

'java -version'の出力は何ですか? –

答えて

0

を投げ、私はちょうどその問題に走ったと私は何をしたいことはあると思い

Path _directotyToWatch = Paths.get("O:/test"); 
+0

その機能していない上記の例外がスローされている – Sushant

+0

あなたはどのJavaバージョンを使用していますか? Java.nio..packageはJava 7の一部です。あなたのバージョンを確認してみてください。あなたはJavaの下位バージョンを持っています。 – CloudyMarble

+0

私はjdkを使用しています7 – Sushant

0

を試してみてください。

Path path = FileSystems.getDefault().getPath(path_string); 
関連する問題