如何为添加到Eclipse工作区的项目使用相对路径?

时间:2011-03-03 09:18:44

标签: eclipse path

我正在处理存储在USB密钥上的一些Eclipse项目。我已将它们添加到工作空间,其根文件夹也位于USB密钥上,但项目不直接位于此目录中。因此,它们的绝对路径将写入工作区的.projects文件夹中。

当我在多台计算机上使用密钥时会出现问题,因为分配给USB密钥的驱动器号并不总是相同(我不想在所有计算机上为其分配特定的字母)。当我将项目添加到工作区时,当驱动器号与USB密钥的驱动器号不同时,Eclipse无法打开我的项目。

这个问题有解决方法吗?具体来说,有没有办法让Eclipse通过工作区文件夹中的相对路径将项目添加到工作区?

5 个答案:

答案 0 :(得分:4)

真的不那么难。您只需指定一个指向WORKSPACE/..;的新变量。例如,你可以使用Forge Minecraft modder包 - 它有一个工作空间,无论什么机器下载它,你放置它的地方,甚至你移动它都可以立即就绪。

下载: http://files.minecraftforge.net/minecraftforge/minecraftforge-src-1.6.2-9.10.0.789.zip

然后解压缩并运行 install.bat / cmd 。然后检查 forge / mcp / eclipse / Minecraft / {.project,.workspace} 的内容以查看一些示例。

我的工作空间就像这样在github上工作。

答案 1 :(得分:3)

简短的回答是,如果不破解工作区元数据([workspace.dir]/.metadata下),就无法做到这一点。 Eclipse工作区的设计不是可移植的,即使您没有物理移动工作区,实际上您也可以通过更改驱动器号来移动它。

我建议您尝试找一种方法让您的项目置于workspace.dir之下。不保证你不会有这样的问题,但可能会提高你的赔率。根据您使用的Eclipse的功能,您最终可能会在工作区元数据中使用其他类型的绝对路径。

答案 2 :(得分:3)

根据我的经验,如果你试图“破解”日食的元数据,它会在某个时候破裂。

考虑Windows中的subst命令(正如你提到的驱动器字母我假设是Windows)

创建一个包含

的bat文件
subst N: .

运行它会将当前目录挂载为N:所以您可以将它放在USB驱动器上,并在运行eclipse之前运行它,然后您将始终在驱动器N上找到相同的内容:

删除mount mount

subst /D N:

您可以考虑制作一个挂载N:的bat文件,启动eclipse并在eclipse退出后卸载N:类似

startMyProject.bat:

subst N: .
N:/eclipse <yadayada options>
subst /D N:

答案 3 :(得分:0)

这个问题有点陈旧,但是有一个完全不同的方法:您可以从Eclipse期望项目的文件夹创建一个Junction,例如E:\foo\workspace\myproject并将其链接到项目所在的位置,例如E:\bar\myproject

Junction本质上意味着您可以通过2个不同的路径访问同一个文件夹,因此您不必担心Eclipse的奇怪相对路径限制。要轻松快速地创建它,我建议您获取Link Shell Extension

答案 4 :(得分:-2)

我自己没试过,但这可能会奏效。尝试:
将源文件夹添加为链接资源&amp;删除先前的定义: http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/tasks-45.htm

关闭eclipse并在工作区中找到您的项目文件夹(例如:C:\Documents and Settings\username\workspace\yourproject\)替换文件.project中的绝对路径。 .classpath具有相对路径。