Eclipse - 另一个Project中的参考文件

时间:2012-10-14 19:53:52

标签: java eclipse file relative

修改:我在帖子底部的解决方案。

我有2个项目在eclipse中共享相同的XML / XSD数据。我已经尝试了很多不同的东西来将数据分解成一个单独的项目,而只是通过各种方法引用它,运气不大。我的目标是,我可以单独点击每个项目的eclipse运行,它们都从相同的数据加载。

当项目最终构建时,将有3个jar(两个项目,+一个lib),它们将与xml和xsd文件夹位于同一目录中。因此,对XSD / XML的任何文件引用当前的格式如下:File file = new File(“xml / pixtilemaps.xml”);

这在eclipse中不起作用,但由于文件结构合理,在导出期间有效。我尝试在每个项目中使用虚拟文件夹,但它看起来不像对相关文件的运行时引用以我期望的方式使用虚拟文件夹。我尝试将每个添加为链接资源,在构建路径上添加项目等,但无论我做什么,它似乎都不会将xml文件夹视为相对文件夹。我得到一个错误:file:/ F:/workspace / com.myoid.editor / xsd / pixixmaps.xsd不存在。因为它需要它相对于项目。我也试图找到一个运行配置解决方案,但显然有一些我不理解让我按照我想要的方式工作。

总而言之,在第三个eclipse项目中有一个xsd文件夹,xml文件夹,我希望1和2能够通过相对文件路径访问,如File file = new File(“xml / pixtilemaps.xml”) ;

我是如何解决的:

好的..所以..也许有更好的解决方案,但这就是我提出的......在运行配置的Eclipse中,您可以指定启动运行的工作目录。所以我把所有xml / xsd放在同一个“工作目录”中的两个项目中。在每个项目的运行配置中,我将工作目录指向第三个项目,而中提琴,它的工作方式与我预期的一样。

2 个答案:

答案 0 :(得分:0)

将前两个项目的构建路径中的第三个项目添加为project reference

在前两个项目中使用ClassLoader.getResourceAsStream代替File,如下所示:

    this.getClass().getClassLoader().getResourceAsStream("/xml/pixtilemaps.xml");

答案 1 :(得分:0)

您是否尝试通过项目菜单引用项目1和项目3中的项目3 - >属性 - > java构建路径 - >添加项目?