Java 如何在注释处理期间获取编译类路径?

Java 如何在注释处理期间获取编译类路径?,java,maven,classpath,annotation-processing,Java,Maven,Classpath,Annotation Processing,我的尝试失败了 ClassLoader cl = ClassLoader.getSystemClassLoader(); URL[] currentClassPath = ((URLClassLoader) cl).getURLs(); String[] classPathStrings = Arrays.stream(currentClassPath).map(url -> { try { return Paths.get(url.toURI()).toAbsol

我的尝试失败了

ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] currentClassPath = ((URLClassLoader) cl).getURLs();
String[] classPathStrings = Arrays.stream(currentClassPath).map(url -> {
    try {
        return Paths.get(url.toURI()).toAbsolutePath().toString();
    } catch (URISyntaxException e) {
        throw new RuntimeException(e);
    }
}).toArray(String[]::new);
System.out.println(Arrays.asList(classPathStrings));
在注释处理器的
process()
方法体中。但它只输出
[C:\ProgramFiles\Maven\boot\plexus-classworlds-2.5.1.jar]


而不是已处理项目的依赖项。

好吧,使用
getClass().getClassLoader()
就足够了<代码>getClass()在注释处理器上下文中。

好吧,使用
getClass().getClassLoader()
就足够了<代码>getClass()在注释处理器上下文中。

我认为在注释处理过程中加载项目类不是一个好主意。请记住,创建类是您正在做的事情。因此,可能是类不可用,或者使用类laoder会减慢编译过程

我认为在注释处理期间加载项目类不是一个好主意。请记住,创建类是您正在做的事情。因此,可能是类不可用,或者使用类laoder会减慢编译过程

我知道这已经有一段时间了,但是在我的
注释处理器中使用它之后,我仍然得到了进行处理的项目的类路径,而不是处理过的项目。你能对这个答案进行一点扩展吗?我知道已经有一段时间了,但是在我的
AnnotationProcessor
中使用它之后,我仍然得到了进行处理的项目的类路径,而不是处理过的项目。你能把这个答案再详细一点吗?