2013-03-20 3 views
2

javaFX를 사용하여 C : \ Program Files 폴더에 파일을 생성하려고하지만 액세스가 거부되었다는 오류가 표시됩니다.JavaFx : java.io.FileNotFoundException (액세스가 거부되었습니다.)

이것은 코드 샘플입니다.

FileWriter fstream = new FileWriter("C:\\Program Files (x86)\\My Folder\\my_file.txt"); 
BufferedWriter out = new BufferedWriter(fstream); 
out.write("Hello!"); 

이 응용 프로그램을 실행하는 동안 내가 찾은 오류입니다.

java.io.FileNotFoundException: C:\Program Files (x86)\My Folder\my_file.txt (Access is denied) 
    at java.io.FileOutputStream.open(Native Method) 
    at java.io.FileOutputStream.<init>(FileOutputStream.java:212) 
    at java.io.FileOutputStream.<init>(FileOutputStream.java:104) 
    at java.io.FileWriter.<init>(FileWriter.java:63) 

지정된 위치에 파일을 만드는 데 필요한 모든 권한이있는 응용 프로그램을 허용하는 방법을 모르겠습니다. 충분한 코드와 정보로 도와주세요.

+0

안녕하세요, "내 문서"와 같은 다른 위치로 시도해보십시오. 작동합니까? 어떤 버전의 윈도우를 사용합니까? XP? 7 승? 8 승? Windows 탐색기를 사용하여 수동으로 파일을 만드는 경우 어떻게해야합니까? –

+0

지정한 위치에 파일을 만드는 데 필요한 액세스 권한이 있는지 확인하십시오. 또한 writer에 내용을 쓴 후에 내용을 플러시 (flush)하십시오.'out.flush(); fstream.close();'.이 주어진 코드가 작동해야합니다. – Meherzad

+0

@DanielRobertus, 응용 프로그램이 설치된 디렉토리를 사용하고 싶습니다. 이 오류는 win7에서 발견되었지만 모든 OS (Mac 및 Windows)에 적용해야합니다. –

답변

1

UAC를 명시 적으로 사용하지 않으면 Program Files에 쓸 수 없습니다. OS가 시스템을 보호하여 시스템을 보호합니다.

+0

어쨌든 응용 프로그램에만 사용할 수 있습니까 ??? –

+1

@ 짐 주둔군 : 작동할까요 ?? 어떻게 할 지 말해줘? –

+0

아니요, UAC를 사용하지 않도록 설정하려면 관리자가 개입해야합니다. 그것이 바로 UAC의 요점입니다. 리눅스 시스템에서는 루트 액세스 권한이 없으면'/ bin'에 쓸 수 없습니다. Win7 이상에서도 마찬가지입니다. –

관련 문제