2012-10-09 5 views
-3

내 컴퓨터 Linux에 openjdk-6-jdk를 설치했는데 renameTo 함수가 작동하지 않습니까? 이 문제에 대해 제발 생각해 보시겠습니까?openjdk-6-jdk로 RenameTo

감사합니다.

+2

어떤 오류가 발생하고 있습니까? 그 이상으로 자세하게 설명해 주시겠습니까? 우리가 무슨 일이 일어나고 있는지 잘 설명하지 못하면 문제를 해결하는 것을 돕기가 어렵습니다. –

+0

나는 이것이 리눅스에서 OpenJDK라는 것과 아무 관련이 없다고 생각한다. 작동하지 않는 데에는 여러 가지 이유가 있습니다. 예를 들어, 일부 프로세스는 이름을 바꾸려는 파일이 여전히 있거나 파일 이름을 바꿀 수있는 권한이 없거나 파티션간에 이름을 바꾸려고합니다. 자세한 내용을 말하고 코드를 보여주십시오. – Jesper

+0

런타임에 프로그램이 파일의 이름을 바꾸지 않습니다 (파일을 움직이지 않습니다). 프로그래머가 새로운 대상에서 파일을 사용할 때 오류가 발생합니다. (내가 코드 java에 명령어 linux mv를 삽입하면 작동합니다! !!) – user1568840

답변

1

런타임에 프로그램이 파일의 이름을 바꾸지 않습니다. 파일을 움직이지 않습니다. programm가 새 대상에서 파일을 사용할 때 오류가 있습니다 (내 linux mv 명령을 삽입 할 때). code java it works !!!)

이러한 증상을 바탕으로 한 파일 시스템에서 다른 파일 시스템으로 파일 이름을 바꾸려고합니다.

"mv"명령은이를 수행 할 수 있지만 File.renameTo(...)은 수행 할 수 없습니다. (부수적으로, "rename"시스템 호출도 할 수 없습니다.) 이것은 OpenJDK 버그가 아닙니다. 오히려 문서화 된 제한 사항입니다. javadoc이 말한다 :

"이 방법의 행동의 여러 측면이 본질적으로 플랫폼에 따라 달라집니다 : 이름 바꾸기 작업이 또 다른 하나 개의 파일 시스템에서 파일을 이동하지 못할 수 있습니다, 그것은 원자되지 않을 수도 있습니다, 대상 추상 패스 명이있는 파일이 이미 존재하는 경우는 성공하지 않을 가능성이 있습니다. 반환 값은, 이름 변경 조작이 성공했는지 항상 확인해야합니다. 또는 플랫폼 독립적 인 방식으로 파일의 이름을 바꿉니다. "


단순히 아래로 이동의 원본 및 대상이 동일한 파일 시스템에 있다는 사실이 될 수있는 몇 가지 다른 기계에서 작동한다는 사실.

+0

제발, 너 mean byt : 하나의 파일 시스템에서 다른 파일 시스템으로 파일의 이름을 바꾸려고 시도합니다 (동일한 컴퓨터에서 작업 할 수 있습니까? openjdk-6-jdk)? – user1568840

+0

링크 읽기 : http://tldp.org/LDP/intro-linux/html/sect_03_01.html. 특히 파티션과 마운트 지점에 관한 내용. 이것은 "파일 시스템"이이 문맥에서 의미하는 것을 설명합니다. –

관련 문제