У меня проблемы с запуском процессора аннотаций из командной строки. Проблема в том, что он работает в среде Windows, но не в моей установке Linux.
Мой процессор находится в файле jar (meta-validator.jar). Я также добавил запись в META-INF/services/javax.annotation.processing.Processor, содержащую полное имя класса моего процессора.
Я пытаюсь вызвать процессор аннотаций с помощью этой команды:
javac -cp "./metadata-validator.jar; ... (path to annotations.jar etc.)" -processor xammt.validator.modules.ValidatorModule -proc:only " ... path to sources"
В среде Windows он просто работает (Windows 7 64bit Pro, JDK 1.7.xx), процессор находится и выполняется процессный метод.
В моей среде Linux (Linux Mint 13 32bit -> в основном Ubuntu 12.04, Oracle JDK 1.7) я получаю сообщение:
error: Annotation processor 'xammt.validator.modules.ValidatorModule' not found
warning: Annotation processing without compilation requested but no processors were found.
Также без переключателя -processor
я получаю такое же предупреждение (с другими подробными вещами).
Что может быть причиной этой проблемы? Я предполагаю, что мой JDK на Linux-машине установлен правильно, потому что я могу без проблем запускать/компилировать java-приложения.
Спасибо за любой совет.
EDIT: я до сих пор понятия не имею, почему это не работает. Забавно, что это работает программно - мне удалось без проблем вызвать мой процессор аннотаций через Java Compiler API (на обеих платформах), это также лучшее решение из-за отладки.
EDIT2: Фактическая команда:
javac -cp "./metadata-validator.jar;./lib/common-library.jar;./Annotation source.jar"
-processor xammt.validator.modules.ValidatorModule -proc:only "SourceFile.java"
РЕШЕНО: проверьте http://en.wikipedia.org/wiki/Classpath_%28Java%29#OS_specific_notes