Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse中的相对路径_Java_Eclipse_Relative Path_Workspace - Fatal编程技术网

Java Eclipse中的相对路径

Java Eclipse中的相对路径,java,eclipse,relative-path,workspace,Java,Eclipse,Relative Path,Workspace,我有一个Eclipse工作区,它被签入Subversion存储库。但是,如果我更改了工作区目录的名称,则不会加载项目文件,我必须重新导入它们,并再次设置任何与工作区相关的设置。Eclipse是否使用相对路径?我不是这个项目中唯一的团队成员,不幸的是,另一个人拒绝遵循共同的目录组织方案 编辑此时,这些都是java项目 编辑工作区matadata文件夹中有多个文件,尽管这里是我找到的第一个与项目相关的文件 <workspace root>\.metadata\plugins\org.ec

我有一个Eclipse工作区,它被签入Subversion存储库。但是,如果我更改了工作区目录的名称,则不会加载项目文件,我必须重新导入它们,并再次设置任何与工作区相关的设置。Eclipse是否使用相对路径?我不是这个项目中唯一的团队成员,不幸的是,另一个人拒绝遵循共同的目录组织方案

编辑此时,这些都是java项目

编辑工作区matadata文件夹中有多个文件,尽管这里是我找到的第一个与项目相关的文件

<workspace root>\.metadata\plugins\org.eclipse.core.resources\.projects\ProjectName\.location
\.metadata\plugins\org.eclipse.core.resources\.projects\ProjectName\.location
在这个文件“.location”中有一个基于文件的URL。Eclipse崩溃后,我做了一些研究,当时我试图使用相对路径,并得出结论:URL不可能使用相对路径

编辑以下是.classpath和.project内容

.CLASSPATH


.项目


简单世界
org.eclipse.jdt.core.javabuilder
org.eclipse.jdt.core.javanature

出于配置和测试的目的,我一直在尝试只使用我们简单的Hello World!示例。

Eclipse通常使用相对路径。在我的工作场所中,我们使用带有Subversion插件的Subversion存储库。当我们进行新的导入时,编译没有任何问题


您可能需要编辑项目的.project和.classpath文件,以查看是否存在对绝对位置的引用,并将其更改为相对位置。

工作区从未真正用于源代码管理。也许我误解了您的设置,但如果您试图在源代码管理中提交工作区的.metadata文件夹,您将遇到一大堆麻烦

您不应该将工作区置于源代码管理中,而应该只放置项目本身。然后通过Subversive或其他subversion插件,从SCM获取项目。这将使eclipse自动为您的项目创建所有资源和配置,并且如果您拥有所有依赖项,它们应该立即编译

为什么您觉得首先需要将整个元数据文件夹放在源代码管理中


如果您正在寻找一种管理构建的简单方法,那么我建议您使用Ant、Maven或其他类似工具来帮助您。如果您想保留您的设置,大多数设置都有导出功能,我建议您使用一个特殊的项目来存储这些设置,并将其置于源代码管理下,这并不理想,因为它不是自动的,但一旦设置完成,它们就不应该经常更改。通常我甚至会在将项目推送到SCM之前过滤掉项目中的.settings文件夹和.classpath,然后让eclipse和maven插件根据需要为我重新生成它们。到目前为止,我从没有遇到过从SCM取回我的东西的麻烦。设置一个新的站点要长一点,但是使用带有所有插件的Eclipse参考安装,然后导入配置和项目真的很快。

看起来Eclipse并不能通过相对路径完成所有事情。 您可以做的一件便宜的事情是在不同的机器上的相同路径中设置相同的预配置Eclipse。
在未来,像这样的云IDE可能会解决这些问题…

我已经找到了绝对路径,但只在工作区文件中找到了。由于它们是一个基于文件的URL(文件://),我认为在我尝试这样做时不支持相对路径,当您尝试加载工作区时,它会使Eclipse崩溃。@MetalSearGolid您可以在问题中包含您的.classpath或.project代码吗,包含基于文件的URL的那个。@MetalSearGolid我还忘了问这些是Java项目还是其他语言。哦,对不起,它们是Javaprojects@MetalSearGolid那么你能在你的问题中包含你找到绝对url的文件吗?我同意@Newtopian,我没有注意到你把你的工作区放在你的vcs中。我想这对我们的设置来说是可以的,我只是一直把Eclipse中的工作区当作Visual Studio中的解决方案。我在Eclipse中的其他项目中也是这样做的,但我和我的项目合作伙伴始终能够保持我们所有的路径不变,因此我从未遇到过这个问题。“我不是这个项目中唯一的团队成员,不幸的是,另一个人拒绝遵循通用目录组织方案”。听起来你们只有两个人,还有两个选择:1)要求老板强加一个结构2)改变你的结构以跟随另一个人的方式最终目标是拥有一个完全便携的设置,基本上就是“结帐就走”。最后,我们只对项目进行了版本控制,并记录了初始设置的工作区配置。这是几年前的事了,所以细节有点模糊。
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>SimpleHelloWorld</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
</projectDescription>