关于《Java编程思想》注解篇的一个案例所遇到的疑惑-apt参数的问题

来源:互联网 发布:知名coser 知乎 编辑:程序博客网 时间:2024/06/05 03:02

    案例为提取接口的案例,里面有一条命令 apt-factory annotations.InterfaceExtractorProcessorFactory Multiplier.java –s ../annotations,这条命令用来运行自定义的AnnotationProcessor,通过继承AnnotationProcessorFactory来进行配置。在写完工程代码后根据自己的包名输入了上述命令,但是运行失败,提示找不到所定义的工厂类,检查自定义的AnnotationProcessorFactory的supportedAnnotationTypes方法,里面所设置的工厂类名包名完整且正确,既然找不到该类,可能是ClassPath配置的问题,根据工程重新配置了ClassPath,提示找不到java文件,经过多次的实验,如果直接进入的工程的该注解类所在目录下,可以成功运行,猜测为路径设置错误的问题,根据自己的工程路径,更改操作时所在的目录,使用正确的相对路径,仍然可以正常运行,判定确实为路径问题。

    最后执行的命令为:D:\>apt -factory com.annotation.apt.InterfaceExtractorProcessorFactory src/com/annotation/apt/Multiplier.java -s src/com/annotation/apt -nocompile

再将java源文件路径更改为绝对路径D:\>apt -factory com.annotation.apt.InterfaceExtractorProcessorFactory D:\Java\eclipse\workspace_epa\Annotation\src\com\annotation\apt\Multiplier.java -s D:\Java\eclipse\workspace_epa\Annotation\src\com\annotation\apt -nocompile,仍然可以正常运行。

总结:

     1.-factory 参数后跟随的为工厂的class名称,包含完整的包名和类名,需首先配置工程的正确的ClassPath;

     2.java源文件如使用相对路径,则是以当前命令窗口所在的目录为基准的,如我在工程的根目录D:\Java\eclipse\workspace_epa\Annotation下,则只需要输入src/com/annotation/apt/Multiplier.java即可;

    3.java源文件如果使用绝对路径,则无路径出错找不到XX.java文件的问题;

    4.如果不需要编译源文件,输入可选参数 -nocompile;

    5.-s 生成的文件保存位置,与查找源文件类似,也是一命令执行时所在的目录为基准的,同样,也可以指定绝对路径。

0 0
原创粉丝点击