【发布时间】:2014-04-10 12:59:42
【问题描述】:
我在 IntelliJ IDEA 上开发时机器崩溃了,当我再次加载项目时,main.java 文件为空。当我在记事本++中打开文件时,只有“NUL NUL NUL NUL NUL”字符。像这样:“”
【问题讨论】:
-
FS 损坏...答案取决于操作系统和文件系统。
-
我正在 Windows 8 上开发。
我在 IntelliJ IDEA 上开发时机器崩溃了,当我再次加载项目时,main.java 文件为空。当我在记事本++中打开文件时,只有“NUL NUL NUL NUL NUL”字符。像这样:“”
【问题讨论】:
这可能是一个延伸,但是...可能有 IntelliJ 从您的 .java 源代码编译的 .class 文件。
例如:
{main IDEA project DIR}/untitled/out/production/untitled/Main.class
“untitled”将是您的项目名称(这是一个在 Linux 下具有目录结构的示例:您可能需要适应 Windows)。
如果您设法找到那个(那些)文件,那么您可能能够使用 Java 反编译器从那个(那些).class 文件。请注意,单个 .java 文件可能会提供多个 .java 文件(例如,如果您的 main.java 中有内部类) .
如果它很小(我只是重写它)我不会打扰,但如果你有一个大的 main.java 文件(顺便说一句,这绝不是一个好主意),那么它可能是值得。
下一次,正如已经建议的那样:查看 (D)VCS 并使用备份 :)
【讨论】:
您也许可以使用文件恢复工具来恢复丢失的文件,但文件可能会永远丢失。 (这就是为什么定期备份是个好主意,并将您的代码副本放入单独机器上的版本控制存储库中......)
有很多适用于 Windows 的文件恢复工具,推荐一个对于 SO 来说是题外话。
如果您完全绝望,我想反编译“.class”文件是另一种选择。但是你不会得到你的任何 cmets 或局部变量的名称等。如果你的代码很复杂,反编译的代码可能会不同......而且不一定正确和可编译。
【讨论】: