que proposito programacion licencia lenguajes herramientas extension costo comercial java file-monitoring

programacion - proposito de java



¿Hay un sofisticado monitor de sistema de archivos para Java que sea freeware o de código abierto? (5)

Estoy buscando una biblioteca Java que me pueda notificar acerca de los cambios en el sistema de archivos.

Encontré algunas librerías gratuitas, pero todas usan detección de fuerza bruta, es decir, sondeos en intervalos regulares. Y los otros son siempre comerciales.

Lo que estoy buscando es una biblioteca que utilice las funciones del monitor de archivos del sistema operativo, es decir, FindFirstChangeNotification para Win32, FAM para Linux y lo que esté disponible en otros sistemas operativos. No me importa si se usa fuerza bruta como respaldo, pero para Windows y Linux debería usar las funciones disponibles del sistema operativo.


¿Por qué tiene que ser Java?

La biblioteca que va a utilizar la API específica de la plataforma debe tener un código nativo, por lo que, esencialmente, la biblioteca contendrá el código nativo que hace que el uso de las diferentes API sea transparente.

Sugiero que, si no encuentra la Biblioteca, tendrá que usar fuerza bruta como la llama o llamar a la API nativa utilizando JNI para cada plataforma.


Dos opciones más que actualmente usan sondeo:

Sin embargo, dado que ambos proyectos tienen grandes comunidades activas, es probable que se actualicen en el futuro para admitir Java 7 WatchService ( FileSystem.newWatchService() ), que utiliza las instalaciones de notificación de la plataforma subyacente, si las hay.

Ambas bibliotecas también proporcionan una capa de abstracción útil para integrarse con varios otros transportes y sistemas, de modo que su código de aplicación principal no dependa de las entradas que se reciben de un sistema de archivos.


Si se siente cómodo trabajando a la vanguardia de Java, eche un vistazo a JSR 203: más nuevas API de E / S, también conocida como nio2, que se lanzará en Java 7 .

Una nueva interfaz de sistema de archivos que admite el acceso masivo a atributos de archivos, notificación de cambios , escape a API específicas del sistema de archivos y una interfaz de proveedor de servicios para implementaciones de sistemas de archivos conectables;


JNotify parece hacer lo que necesita.

Sondear un sistema de archivos (por ejemplo, un directorio para los cambios de hora de actualización) no impondrá una carga significativa en su sistema, y ​​no debe descontarse. Aplicaciones como Tomcat, etc. usan esto para administrar despliegues activos con pocos problemas.

No es mucha ayuda ahora, pero el próximo Java 7 tiene un WatchService precisamente para esto.


jpathwatch es otra opción. Implementa la API de Java 7 para el monitoreo de directorios, por lo que es fácil realizar el acceso a Java 7 si lo desea.