前言:是的,我确实读过this。我尝试了它失败了,原因我将在下面解释。这个问题并没有重复,因为这个问题已经超过三年了,显然,Eclispe从那时起就已经发生了变化,而且曾经有效的工作不再有效。
TL; DR :我试过了,但是没有用。我还能做什么?
无论如何,我的实际问题基本相同;我只是在寻找更新的答案。我在Google上找不到一个 - 我发现的每个回复都是针对另一个IDE,或者与上一个问题一样旧 - 所以不妨在这里发布。
我正在开发一个项目,而不是使用Date
和Calendar
Java内置函数,我想使用Joda-time。我听说过很多很棒的事情,从我自己的经验来看,这似乎很不错。但是,因为我是学生,所以我希望能够在学校和家里都能做到这一点,这意味着我需要让它变得便携。因为我是学生,我无法安装Java 8并使用他们执行相同操作的新内置类。因此,我需要一种可移植安装库的方法。
但是,当我更换计算机时,驱动器号会更改,因此只需将其作为外部jar添加到闪存驱动器中将无法正常工作。我尝试将其添加为普通jar,如前一个问题中所述,但是失败了,因为即使我的libs
文件夹与src
文件夹位于同一目录中,正如它所说的那样,它也没有t出现在菜单中。
Add JARs menu http://i60.tinypic.com/2u6ijqf.png Add JARs...
菜单
File structure http://i60.tinypic.com/xenypw.png我的文件结构(库在joda-time-2.5
内)
接下来,我尝试手动编辑.CLASSPATH
文件。我做了一些测试,看看它是如何工作的,然后尝试将绝对路径更改为相对路径。然而,这仍然失败,因为当我更换计算机时,它告诉我它找不到库,尽管相对路径没有变化。为了澄清,我更改了相应的内容:
<classpathentry kind="lib" path="F:/.../ProjOrg/libs/joda-time-2.5/joda-time-2.5.jar"/>
到此:
<classpathentry kind="lib" path="libs/joda-time-2.5/joda-time-2.5.jar"/>
当我移动计算机时它仍然会出错,尽管它在第一台机器上工作正常。
有没有办法可以导入或以其他方式将Joda-time库链接到我的便携式Eclipse,这样当我移动PC时我不需要做任何事情?或者,有没有办法让Java 8进入我的闪存驱动器,所以我不必担心它?
答案 0 :(得分:1)
您必须创建一些变量来声明路径的 ROOT ,然后将此 ROOT 添加到可以找到库的相对路径中。例如:
<classpathentry kind="var" path="*ROOT*/.../yourlibrary.jar" />
要创建变量,您必须转到 Java - &gt; 构建路径 - &gt; 类路径变量 ,您必须定义 ROOT 。显然, ROOT 是按位置变化的部分。
<强>更新强>:
在回应OP添加的评论时,我不确定在创建某种排序安装脚本之外,您所要求的是否可行。您可以像查看任何其他项目文件一样检入CM存储库中的 .classpath 文件,以便每个开发人员都获得相同的 .classpath 文件。
问题是用户可以在任何他/她想要的地方安装库,而且你无能为力。此外,如果您在服务器中有库,则可以以不同方式映射该网络驱动器。
我认为我做了类似的事情(尽管不是限制性的),我们创建了一个 ECLIPSE_HOME 环境变量,然后提供了一个简单的安装程序(一个批处理文件)来安装带有一些插件的Eclipse。您可以在包含JAR文件的zip文件中获得Eclipse安装的主副本,并且可以运行该脚本来设置此环境变量并将Eclipse解压缩到所有用户的相同位置。
答案 1 :(得分:1)
正如评论中所讨论的,该项目需要更新。
如果使用外部文件浏览器将文件复制到项目中,Eclipse将不会自动查看这些新文件。人们应该记住这一点。简单的刷新通常可以解决有关丢失文件的看似无法解释的错误。发生在我身上很多。
我原本期望“添加JAR ...”对话框直接从文件系统中读取,但它似乎使用当时工作空间中已知的项目内容。