-3

我已经在我的机器 linux 上安装了 openjdk-6-jdk,renameTo 函数不起作用?你对这个问题有什么想法吗?

谢谢你。

4

1 回答 1

1

在运行时,程序不会重命名文件(它不会移动文件)。当程序将在新目标中使用文件时出现错误(当我在我的代码 java 中插入命令 linux mv 时它可以工作!! !)

基于这些症状,我会说您正在尝试将文件从一个文件系统重命名为另一个文件系统。

“mv”命令可以做到这一点,但File.renameTo(...)不能。(顺便说一句,“重命名”系统调用也不能。)这不是 OpenJDK 错误。相反,它是一个记录在案的限制。javadoc是这样说的:

“这种方法的行为的许多方面本质上是依赖于平台的:重命名操作可能无法将文件从一个文件系统移动到另一个文件系统,它可能不是原子的,如果具有目标抽象的文件可能不会成功路径名已存在。应始终检查返回值以确保重命名操作成功。

请注意,Files 类定义了 move 方法,以独立于平台的方式移动或重命名文件。”


它可以在其他机器上工作的事实可能只是因为移动的源和目标位于同一文件系统中。

于 2012-10-09T12:46:50.557 回答