我在类路径中添加了Lombok 1.12
jar文件,而我在库中提供了Lombok 1.16
jar文件(同时在eclipse中配置了构建路径)。 Eclipse
无法识别像@Builder
那样的lombok注释(正在给编译器错误)。
(版本@Builder
中的主Lombok
包中也包含1.12
)
后来我更正了classpath中的Lombok 1.16
jar文件。这次通过eclipse识别@Builder
注释。一切都运作良好。
这意味着将vm中的类路径与构建路径进行比较,并检查二进制文件(lombok.jar
)是否与类路径和构建路径相同。我的断言是否正确?如果我错误地解释了这一点,请纠正我。
答案 0 :(得分:1)
构建路径是类路径的超集,它包含类路径,源代码路径和依赖于项目的所有资源。如果您有2个不同版本的jar,JVM将从构建路径中首先加载的jar中加载该类。这可以通过编辑(构建路径 - >配置构建路径 - >导出顺序)进行管理。如果第一个版本中没有所需的类,它将检查第二个版本的jar。如果它根本找不到它,那么将抛出编译错误
答案 1 :(得分:0)
在eclipse中,如果两个jar都在构建路径中,那么你想要引用的就是通过将它设置为top来给它优先顺序 - 构建路径最后一个选项卡,或者你可以脱钩你想要引用的较低版本。