Java自定义注解问题追踪及解决
2016-06-02 13:46
399 查看
警告:在搜索路径中找不到指定的 AnnotationProcessorFactory "com.dusk.annoation.database.InterfaceExtractorProcessorFactory"。
警告:未找到注释处理器,但存在注释。
多么令人沮丧的场景啊!。
这是使用apt处理自定义注解的时候发生的场景。
先上解决方案再谈引申:
这是因为你的AnnotationProcessorFactory类在你的虚拟机中找不到的原因,做法是预先编译你的自定义注解的相关类,然后把它加入你的classpath中。
我是写了一个批处理文件
rem 项目根目录
set PROJECT_ROOT=C:\Users\army_du163.com\Workspaces\MyEclipse 2015 CI\ThinkInJava
rem 包目录路径
set PACKAGEPATH=com\dusk\annoation\database
rem 运行根路径
set RUN_ROOT=%PROJECT_ROOT%\bin
rem 源文件所在目录路径
set SRC_ROOT=%PROJECT_ROOT%\src\main\java
rem 设置Classpath
set CLASSPATH=.;%JAVA_HOME%;%JAVA_HOME%/lib/tools.jar;%RUN_ROOT%
cd %SRC_ROOT%\%PACKAGEPATH%
apt -nocompile -factory com.dusk.annoation.database.InterfaceExtractorProcessorFactory Multiplier.java
pause其中的运行根目录RUN_ROOT=%PROJECT_ROOT%\bin是我myeclipse编译后字节码文件存放的地方,如果你打成了jar包,这里应该是你jar包的路径。
接下来我们看一下apt的用法,apt -help
一目了然。
当然了,apt在jdk6,jdk7的bin目录下是存在的,如果你用的是JDK8你会发现没有apt.exe,那么怎么办呢?
我也不会啊!
相关文章推荐
- java io流
- Spring Boot笔记
- 史上最全最强SpringMVC详细示例实战教程
- java dom4j解析XML读取数据源配置的代码实例
- JDK、J2EE、J2SE、J2ME的区别
- 如何学好java,给你教程
- RxJava源码浅析
- Implementing High Performance Parsers in Java
- 抽象类和接口的区别——从java的设计意图说起
- 深入理解Java的接口和抽象类
- 一致性hash算法与java实现
- Java常用排序算法之希尔排序
- BUG:eclipse中添加V7包ERROR: In <declare-styleable> MenuView, unable to find attribute android:pre
- Spring容器中Bean的作用域
- Java Concurrency - 浅析 CyclicBarrier 的用法
- 设置STS、ECLIPSE、myeclipse打开java源码乱码问题
- 用java做个日历,如果是这一天,就标上*号
- Eclipse 下 查询和复制类路径的快捷方法
- Java中如何遍历Map对象的4种方法
- java遍历文件夹里面的所有文件