5

编辑:我在帖子底部的解决方案。

我有 2 个项目在 Eclipse 中共享相同的 XML/XSD 数据。我尝试了许多不同的方法将数据分解为一个单独的项目,然后通过各种方法引用它,但运气不佳。我的目标是,我可以分别为每个项目单击在 Eclipse 中运行,并且它们都从相同的数据加载。

最终构建项目时,将有 3 个 jars(两个项目,+一个 lib),它们将与 xml 和 xsd 文件夹位于同一目录中。因此,任何对 XSD/XML 的文件引用当前都采用如下格式:

File file = new File("xml/pixtilemaps.xml");

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

总而言之,在第三个 Eclipse 项目中有一个 xsd 文件夹,xml 文件夹,我希望 1 和 2 能够通过相对文件路径访问,例如

File file = new File("xml/pixtilemaps.xml");

我如何修复它:

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

4

2 回答 2

1

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

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

    this.getClass().getClassLoader().getResourceAsStream("/xml/pixtilemaps.xml");
于 2012-10-14T19:59:03.337 回答
1

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

于 2012-10-14T20:05:16.690 回答