3

我使用 Eclipse 编写 Java 代码并使用 DropBox 将我的代码与我们多台计算机上的其他人同步。大多数情况下,一切都按预期进行:如果有人在任一端进行了更改,则保存更改,当其他人刷新 Eclipse 工作区时,更改会通过,可以查看并成功运行。

有时,会出现几个错误之一。有时 Eclipse 说它找不到主类,有时它说它找不到类本身。有时它不会报告错误,但由于某种原因实际上不会更新 .class 文件,因此即使编译器显示新的源代码并保存,也会运行旧版本。然后我注意到,如果我手动将代码复制到文件系统中其他地方的新 .java 文件中然后编译它,它工作正常,但由于某种原因它拒绝重新生成 .class 文件,我必须删除它手动并用另一个项目中生成的替换它 - 然后它就可以工作了。但是为了解决其他问题,一切都需要手动复制、删除和重新粘贴......

[实际错误包括 NoClassDefFoundError、UnsupportedClassVersionError 和其他一些与没有主类有关的错误。]

我意识到这里的描述有些模糊,但不幸的是我不完全确定发生了什么。我希望我只是错过了一些有助于解决所有这些问题的基本事实。

谢谢!

4

5 回答 5

5

我相信您会看到使用 Dropbox 共享源代码的问题。

Eclipse 在上传和下载更新时不知道 Dropbox 在做什么,它们的活动肯定不会同步。在 Eclipse 尝试构建等的任意时间点,它会发现意外活动正在进行,甚至可能部分下载的源文件可能解释您所看到的特定错误。

您正在尝试做一些比共享照片或文档更复杂的事情。我给出的建议是使用 git 或 subversion 之类的源代码控制系统来共享和控制源代码。然后,您可以使用旨在以易于使用的方式集成这些系统的 Eclipse 插件。那里有一个学习曲线,但这些技能会很好地为你服务。

如果您想像使用 Dropbox 一样将源代码的共享、备份和版本控制作为服务使用,您可以使用这些解决方案的在线版本,例如githubunfuddle 。他们也是免费的。

于 2010-02-26T19:17:39.377 回答
4

SubversionGit和所有版本控制软件为您解决所有这些问题。

于 2010-02-26T19:19:29.823 回答
3

Dropbox 并不是真正适合共享代码的系统。你应该做的是设置一个 SVN,并且只提交源文件。这样,您就不会出现此类错误。

于 2010-02-26T19:17:45.007 回答
2

Dropbox 确实有版本控制(您可以恢复文件的旧版本),并且似乎不是解决问题的可怕解决方案。我将我的 Eclipse 存储库保存在 Dropbox 上,因此它可以在任何计算机上使用;但是因为我自己用的,所以没遇到你的问题。

在一种情况下,我绝对可以看到您遇到问题——如果您的类文件也存储在保管箱中。这只会搞砸一切。确保在本地硬盘驱动器上为所有构建工件(类、jar 等)指定一个位置,并且保管箱上唯一的东西是 .java 源。

事实上,我建议您不要将 eclipse 项目保存在您的 Dropbox 中,只需创建您的 eclipse 项目并将其指向您的 Dropbox 中的 java 文件即可。

如果这对您不起作用,请按照其他人所说的在某处设置 SVN 存储库,这比您想象的要容易。

哦,另一个可能的问题——日期!您可能希望确保您的 java 文件上的日期不会前后跳动(如果您的开发人员在另一个时区可能会发生这种情况)。在这种情况下,Eclipse 可能不希望重新编译您的文件。

此外,尝试强制清理项目,而不是您当前正在执行的复制/等过程。

对更多信息请求的回应:

当您启动 Eclipse 时,选择/创建一个不在您的 Dropbox 上的工作区。最好的位置可能不在您的主目录中。如果您已经指定了默认工作区,则文件菜单中应该有一个切换工作区项。

创建您的项目。选择“从现有源创建项目”并在您的 Dropbox 中指定源文件。我认为您希望“为源文件和类文件创建单独的文件夹”以使您的类文件远离您的保管箱。如果您看到任何内容说“将文件复制到您的工作区,请说“不”。

这应该为您提供一个有效的工作项目。我希望你不要再看到这些问题了。

还有一件事可能会有所帮助 - 这可能适用于您现有的项目 - 没有上述过程......

每当您刷新文件 (f5) 以从 Dropbox 加载更改时,请选择 Project/clean 菜单并选择项目。这应该删除所有类文件并重建它们。

如果您的类文件在 Dropbox 上共享,这仍然会对打开 eclipse 的其他人产生奇怪的后果,所以我真的建议重建您的工作区,就像我上面所说的那样。

于 2010-02-26T19:51:40.790 回答
-2

如何避免没有主课

提供一份。这个问题与 DropBox 无关

于 2010-02-27T09:32:57.593 回答