No se puede ejecutar el procesador de anotaciones de Java

Tengo problemas para ejecutar mi procesador de anotaciones desde la línea de comandos. El problema es que funciona en el entorno de Windows, pero no en mi instalación de Linux.

Mi procesador está ubicado en un archivo jar (meta-validator.jar). También agregué una entrada a META-INF / services / javax.annotation.processing.Processor que contiene el nombre completo de la clase de mi procesador.

Estoy tratando de invocar el procesador de anotaciones con este comando:

javac -cp "./metadata-validator.jar; ... (path to annotations.jar etc.)" -processor xammt.validator.modules.ValidatorModule -proc:only " ... path to sources" 

En el entorno de Windows simplemente funciona (Windows 7 64bit Pro, JDK 1.7.xx), se encuentra el procesador y se ejecuta el método de proceso.

En mi entorno Linux (Linux Mint 13 32bit -> básicamente Ubuntu 12.04, Oracle JDK 1.7) recibo un mensaje:

error: Annotation processor 'xammt.validator.modules.ValidatorModule' not found
warning: Annotation processing without compilation requested but no processors were found.

También sin -processorinterruptor recibo la misma advertencia (con otras cosas detalladas).

¿Qué podría estar causando este problema? Supongo que mi JDK en la máquina Linux está instalado correctamente, porque puedo ejecutar / compilar aplicaciones Java sin ningún problema.

Gracias por cualquier consejo

EDITAR: Todavía no tengo idea de por qué esto no funciona. Lo curioso es que funciona mediante programación: logré invocar mi procesador de anotaciones a través de Java Compiler API sin problemas (en ambas plataformas), esta también es una mejor solución debido a la depuración.

EDIT2: comando real:

javac -cp "./metadata-validator.jar;./lib/common-library.jar;./Annotation source.jar" 
-processor xammt.validator.modules.ValidatorModule -proc:only "SourceFile.java"

SOLUCIONADO: revise http://en.wikipedia.org/wiki/Classpath_(Java)#OS_specific_notes

Respuesta 1

En Linux, ¿está utilizando dos puntos en lugar de punto y coma como separador de ruta de clase? Incluya también el comando de Linux que está ejecutando.

Cambie los punto y coma a dos puntos en el classpath y debería funcionar.

Me gusta esto:

javac -cp "./metadata-validator.jar:./lib/common-library.jar:./Annotation source.jar" -processor xammt.validator.modules.ValidatorModule -proc:only "SourceFile.java"
Respuesta: 2

Tengo un cuadrado de 1 km, lo estoy dividiendo en 100 metros tanto en el lado positivo como en el negativo. __________Y__________ | El | El | El | El | El | ...

Soy nuevo en el mundo de Android. Estoy tratando de aprenderlo. Tengo una pregunta sobre las clases internas en el código de Android. Por qué y cuándo necesitamos crear una clase interna. Podemos crear una clase individual y ...

Estoy trabajando en una aplicación de Android y estoy teniendo problemas con una cadena Json. Quiero acceder a "Naam" en "Docenten" en el siguiente Json: {"Elementos": [{"Id": 2157750, "Enlaces": [...

He seguido la demostración de JFreeChart (StackedBarChartDemo5) para crear un diagrama que me permita usar GroupedStackedBarRenderer. Básicamente, estoy trazando tiempos aéreos para cada estación (...