2012-10-09 53 views
-3

我在我的機器linux上安裝了openjdk-6-jdk,函數renameTo不起作用? 有沒有關於這個問題的想法?RenameTo with openjdk-6-jdk

謝謝。

+2

你得到了什麼錯誤?你能否再詳細描述一下「不起作用」?當我們沒有很好的描述發生的事情時,很難幫助你解決問題。 –

+0

我懷疑這與Linux上的OpenJDK有什麼關係。有很多原因可能導致無法正常工作:例如,某些進程仍然存在要重新命名的文件,您沒有權限重命名文件,或者您試圖在分區間重命名該文件。告訴我們更多細節並顯示您的代碼。 – Jesper

+0

在運行時程序不會重命名文件(它不會移動文件)..我有一個錯誤,當程序將使用該文件在新的目的地(當我插入命令Linux mv在我的代碼Java它的作品! !!) – user1568840

回答

1

在運行時程序不會重命名文件(它不會移動文件)..我有一個錯誤,當程序將使用該文件在新的目的地(當我插入命令Linux mv在我的代碼java它的工作原理!)

基於這些症狀,我想說,你正試圖重命名文件從一個文件系統到另一個。

「mv」命令可以做到這一點,但File.renameTo(...)不能。 (順便說一下,「重命名」系統調用也是如此。)這不是OpenJDK的錯誤。相反它是一個記錄的限制。該javadoc這樣說:

「這種方法的行爲的許多方面是天生的平臺依賴性:重命名操作可能無法從一個文件系統的文件移動到另一個,它可能不是原子,如果已經存在目標抽象路徑名的文件可能會失敗返回值應該始終檢查以確保重命名操作成功

請注意,Files類定義要移動的移動方法或以獨立於平臺的方式重命名文件。「


,它的工作原理其他一些機器上可能只是下降的事實,源和目的地,此舉是在同一個文件系統的事實。

+0

請問,你是什麼意思是byt:嘗試將文件從一個文件系統重命名爲另一個文件系統(我在同一臺機器上運行openjdk-6-jdk)? – user1568840

+0

閱讀此鏈接:http://tldp.org/LDP/intro-linux/html/sect_03_01.html。特別是關於分區和掛載點的東西。這解釋了在這種情況下「文件系統」的含義。 –