编辑:我在帖子底部的解决方案。
我有 2 个项目在 Eclipse 中共享相同的 XML/XSD 数据。我尝试了许多不同的方法来将数据分解为一个单独的项目,并通过各种方法引用它,但运气不佳。我的目标是让我可以分别为每个项目单击在 eclipse 中运行,并且它们都从相同的数据加载。
项目最终建好后,会有3个jar(两个项目,+一个lib),和xml和xsd文件夹在同一个目录下。因此,对 XSD/XML 的任何文件引用目前都采用如下格式:
File file = new File("xml/pixtilemaps.xml");
Run Code Online (Sandbox Code Playgroud)
这在 eclipse 中不起作用,但由于文件结构健全,因此在导出期间有效。我尝试在每个项目中使用虚拟文件夹,但对相关文件的运行时引用看起来不像我期望的那样使用虚拟文件夹。我已经尝试将每个添加为链接资源,在构建路径上添加项目等,但无论我做什么,它似乎都没有将 xml 文件夹视为相对文件夹。我收到如下错误:file:/F:/workspace/com.myoid.editor/xsd/pixtilemaps.xsd 不存在。因为它需要相对于项目。我也试图找到一个运行配置解决方案,但显然我不明白要让它以我想要的方式工作。
所以总而言之,在第三个 eclipse 项目中有一个 xsd 文件夹,xml 文件夹,我希望 1 和 2 能够通过相对文件路径访问,例如
File file = new File("xml/pixtilemaps.xml");
Run Code Online (Sandbox Code Playgroud)
我是如何修复它的:
好的...所以...也许有更好的解决方案,但这是我想出的...在运行配置下的 Eclipse 中,您可以指定启动将从中运行的工作目录。所以我将两个项目的所有 xml/xsd 都放在同一个“工作目录”中。在每个项目的运行配置中,我将工作目录指向第三个项目,而 viola,它的工作原理与我预期的一样。