【发布时间】:2012-03-05 19:02:35
【问题描述】:
我正在尝试理解 Eclipse 类路径文件,特别是我想知道这个:
JRE 是如何使用它的(即 JVM 是直接读取这个 xml 文件,还是 eclipse 以某种方式将它输入到它的内部编译器中)?
当我从 IDE 运行我的类时,如何解析复杂条目(如下面的 ivy 路径)并将其合并到 JVM ClassLoader 中?
上下文:我有一个奇怪的错误,即 eclipse 使用了“错误”版本的类,而我的 ivy / ant 构建使用了正确的版本,因此我想使用 Eclipse 工具来更好地模仿使用的类加载器在我纯粹的构建中。为了做到这一点,我想我必须查看 Eclipse 项目/类路径文件。
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="conf"/>
<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?ivyXmlPath=ivy.xml&confs=*"/>
<classpathentry kind="output" path="build"/>
</classpath>
【问题讨论】:
-
我不相信 JVM 对 Eclipse 类路径文件一无所知。您可以使用仅打印出 System.getProperty("java.class.path") 的主块来敲开一个测试类 - 这将向您显示所有复杂的引用都只是解析为磁盘上的 jar 文件位置,它们是然后馈入正常的 JRE 类路径。如果您对 Ivy 的东西有一个模糊的错误,那么您可能想向 Ivy Eclipse 插件的开发人员提出它?祝您好运解决您的问题
标签: java eclipse ant classpath ivy