了解Eclipse类路径声明

我正在尝试理解Eclipse类路径文件,特别是,我想知道这个:

  1. JRE如何使用它(即JVM是直接读取这个xml文件,还是eclipse以某种方式将其提供给它的内部编译器)?

  2. 当我从IDE运行我的类时,如何解析复杂条目(如下面的常春藤路径)并将其合并到JVM ClassLoader中?

上下文:我有一个奇怪的错误,就是eclipse正在使用类的“错误”版本,而我的ivy / ant版本正在使用正确的版本,因此我想用Eclipse工具来更好地模仿我纯粹使用的类加载器建立。 为了做到这一点,我想我将不得不看看Eclipse项目/类路径文件。

         

两件事:

1)项目类路径用于使用Eclipse Java Compiler(ejc)编译代码,因此文件信息将传递给EJC。

2)创建启动配置时,实际上是在声明运行应用程序的类路径,默认情况下,它基于项目类路径。 此类路径作为参数传递给JVM,就像您手动执行一样(java -cp $ {classpathentries} yourmainclass)。 如果要查找启动配置的类路径,在调试模式下启动app / classes,在Debug视图中,选择您的进程并单击Properties,您将看到完整的类路径(所有jar /作为参数传递给JVM的目录)

NB:我看不到你的常春藤路径。

问题可能是:

这意味着在你的eclipse类路径中,你应该有两个不同版本的同一个类(两个不同版本的不同jar文件)。 如果是这样,那么尝试删除一个。 同样在您的eclipse构建路径中有一个名为“构建顺序”的东西,您可以在其中指定类路径jar的顺序尝试更改它。