【问题标题】:Eclipse deleted my java and class files?Eclipse 删除了我的 java 和 class 文件?
【发布时间】:2018-06-18 22:07:42
【问题描述】:

我最近买了一台新电脑,所以在备份到时间胶囊的过程中,重新安装 eclipse 并重新加载我的项目 Eclipse 出现了通常的“import Foo cannot be resovled”错误。我将我的/WEB-INF 文件夹添加到类路径中,刷新、清理等无济于事。我决定删除该项目(并且没有单击删除光盘上的项目内容的复选框)。我使用服务器中的源(在共享计算机上)重置项目。我仍然没有高兴,我查看了我的 classes 文件夹,发现它是空的。

所以我跑到我的服务器上发现我的 classes 文件夹确实是空的,我去垃圾桶找不到 java 或 class 文件,我对我的 mac 和我的 macbook 进行了全面搜索,没有找到 class 或 java 文件.编译的类仍在工作,但我担心它们会在下次重新启动时消失 - 有没有人知道如何取回我的类源代码?他们代表了一年多的工作。我有版本控制,但只在这台电脑上。

【问题讨论】:

  • 这不是真正的 Java 或开发相关,而是更多与 Apple 产品相关的问题。
  • 我认为这是一个类似于 WAR 的“动态 Web 项目”。我只是不明白源代码丢失问题,因为您告诉资源在共享计算机上的服务器上可用?您究竟是如何导入项目的?直接从共享计算机作为网络磁盘还是从本地磁盘文件系统上的副本?究竟哪些 Java 代码导入是无法解析的?他们碰巧是javax.servlet 包和喜欢的吗?您确定您拥有“Eclipse for Java EE”,而不仅仅是“Eclipse for Java”,并且在导入项目之前设置了正确的服务器吗?
  • 疯了。在从 Eclipse 中删除之前,您确定该项目包含所有源代码吗?
  • 源代码在共享计算机上,项目直接从共享计算机引用文件。 “classes”文件夹和“src”文件夹中的所有文件都消失了,但“lib”文件夹中的war文件仍然存在。 javax.servelet 还在,文件是我自己的包。服务器从未动过,我正在使用的笔记本电脑是新的。我能想到的就是在删除eclipse项目的过程中我的文件被删除了。
  • 只是重建项目?请注意,/WEB-INF/lib 不应包含 WAR 文件或特定于 servletcontainer 的库。

标签: java eclipse


【解决方案1】:

首先将 .class 文件复制到单独的文件夹中,这样您就不会丢失它们。

尝试使用时间胶囊或其他方式找到您的备份。

如果一切都失败了,请使用工具反编译 .class 文件。

How do I "decompile" Java class files?

我不知道这会让你更开心,但你不是第一个神奇地丢失重要源代码的人......无论有没有备份和版本控制......

【讨论】:

  • 我喜欢这个主意。如果我没有从历史中找到恢复(而不是重构......历史),我会尝试它。
【解决方案2】:

很多人每天都在使用 eclipse,如果这种情况经常发生,我希望这个问题会被大声报告——问题更有可能出在你的进程中(尽管 eclipse 会删除你的源目录,如果你告诉它删除项目然后选择“删除源”选项并确认)

在每个程序员的生活中,您都处于我们了解版本控制优势的阶段。拥抱 SVN 或 GIT,即使是单个用户项目。这让我们所有人都付出了代价,从那时起,使用版本控制就像每 20 秒按一次 ctrl-s 一样与生俱来。

至于你目前的情况,回去分析你的时间胶囊备份,找到一个最近有效的备份,再次恢复它,然后将其粘贴到版本控制中。如果您之前没有设置过版本控制,SVN 非常棒且易于配置。

TimeCapsule 不错,但它无法替代好的 vc 系统。

【讨论】:

  • 谢谢比尔 K,我知道你是对的。我确实有我可以坐下来更新的旧版本的源代码,但我现在很伤心!源代码控制是我认为“我会尽快阅读它,以便我了解如何正确使用它”的事情之一——我想现在是时候了 :(
  • 啊,但一切都没有丢失!你会发现重写自上次备份以来所做的更改会比第一次更快,而且代码也会更好:-)
  • 感谢 KarlP,那是真的 - 毕竟总有我想改进的代码“当我开始使用它时”。我需要那个:)
  • @KarlP 这正是我第一次了解到需要版本控制时发生的事情!我失去了整个 3 个月的项目,当我想起那个周末我把它带回家(在软盘上)工作时,我正准备提交辞职通知。我还在家里有副本,不到一天就赶上了,重写后我的代码明显更好(总是如此)!
【解决方案3】:

我刚刚让 Eclipse 向我的项目添加了第二个 src 文件。我正在添加一个 jni 文件夹,并对 src 目录中的一个文件进行了重命名重构。所以我得到了两个带有红色 x 的 src 文件夹。我删除了其中一个,但没有对话框询问我是否要从磁盘中删除。然而,Eclipse 就是这样做的。两个 src 文件夹都消失了。它不在我的垃圾桶里。我同意原来的帖子。虽然我已经使用 eclipse 2 个月了,这是我遇到的第一个此类文件系统错误,但肯定存在错误。如果 eclipse 将文件删除到垃圾箱或提供恢复工具,那就太好了。历史……让我无法恢复。

【讨论】:

  • 好吧,虽然 Refactor->History 是一个死胡同,但nodans.com/index.cfm/2008/1/18/… 的建议是右击项目并选择“从历史中恢复”确实有效。但是,我最终得到了两个 src 文件夹。 sunfarmkitchens.ca/?q=webfm_send/78 。有趣的是,它们是重复的,除了一个有一个名为 A.B.C 的包,而另一个是嵌套文件 A/B/C。相同的内容。 .metadata 中的某些东西搞砸了?
【解决方案4】:

我知道这是很久以前的事了,但是如果您右键单击您的包或项目并单击“从本地历史记录恢复”,您可以毫无问题地恢复您的文件。

【讨论】:

    【解决方案5】:

    是的,重大问题应该广泛发生并经常得到报告。但是,我有理由相信可能会出现罕见的问题。我不在 Eclipse 工作区中保留项目源代码,而是使用通用文件夹结构来镜像我们的 SVN 存储库。前几天,我在 5 个项目(大约 25 个)上打开了一个 Eclipse 工作区,并进行了 maven 构建。一切都很成功,日食看起来很好。在其他地方测试后,大约半小时后我回到eclipse,看到项目资源管理器到处都是红色的问题指示器。在遍历项目时,我发现所有源文件夹和文件都消失了。只有项目文件夹及其编译的类文件夹幸存下来。这适用于我的工作区已连接到的所有项目。其他 20 个项目已被完全删除,理论上只有 ANT 知道的我的构建区域也是如此。删除的模式太微妙了,不可能是我不小心点击按钮或拖动东西造成的。

    【讨论】:

    • 镜像结构并将代码保存在单独的位置是一个很好的建议,但我不确定这是否回答了 OP 的问题,即“有没有人知道如何上我的课源代码返回”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 2023-03-21
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多