Eclipse中的classpath和buildpath中的不同jar文件

时间:2016-05-28 22:39:37

标签: java eclipse classpath buildpath lombok

我在类路径中添加了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)是否与类路径和构建路径相同。我的断言是否正确?如果我错误地解释了这一点,请纠正我。

2 个答案:

答案 0 :(得分:1)

构建路径是类路径的超集,它包含类路径,源代码路径和依赖于项目的所有资源。如果您有2个不同版本的jar,JVM将从构建路径中首先加载的jar中加载该类。这可以通过编辑(构建路径 - >配置构建路径 - >导出顺序)进行管理。如果第一个版本中没有所需的类,它将检查第二个版本的jar。如果它根本找不到它,那么将抛出编译错误

答案 1 :(得分:0)

在eclipse中,如果两个jar都在构建路径中,那么你想要引用的就是通过将它设置为top来给它优先顺序 - 构建路径最后一个选项卡,或者你可以脱钩你想要引用的较低版本。