2012-06-04 2 views
0

Java jar 실행 파일에서 텍스트 파일에 쓰고 있습니다. jar 파일은 올바른 파일을 생성하지만 파일의 권한은 root로 설정되어 있으므로 다른 Javascript에서는 파일을 읽을 수 없습니다. 아약스를 통해 파일을 읽으려고 할 때 "Permission Denied"를 반환합니다. Java로 파일을 만들 때 어떻게 문제를 해결할 수 있습니까? 현재 Java 1.6을 실행 중입니다.Linux에서 java jar 파일로 파일 쓰기

이클립스에서 응용 프로그램을 실행할 때이 문제가 발생하지 않았습니다. 항아리에 이식 한 후 루트 액세스 권한이 변경되었습니다.

은 내가

exec('java -jar writeToFile.jar'); 
파일에 쓰기 만 파일에 쓰기

public void writeContents(String fp,String contents){ 
    try{ 
     BufferedWriter write = new BufferedWriter(new FileWriter(fp)); 
     write.write(contents); 
     write.close(); 
    }catch(Exception e){ 
     System.out.println("Failed to write to file " + fp + " error: " + e.toString()); 
     e.printStackTrace(); 
    } 
} 

, 그것은 좋은 파일을 올바른 디렉토리를 생성하고 원하는 데이터와 함께 작동 표준

항아리를 실행하고 이클립스에서 실행하고 항아리를 통해 실행 사이의 차이는 파일 권한입니다. jar 파일을 루트로 설정합니다.

+0

블라인드 추측은 WebServer가이 파일에 액세스 할 수있는 권한이 없다는 것을 의미합니다. 또는 닫지 않은 Java 코드가 보유한 파일에 대한 잠금이 있음을 나타냅니다. 몇 가지 코드를 보여 주거나 더 나은 방법으로 [SSCE] (http://sscce.org/)를 만드십시오. – npe

+0

당신은 어떤 사용자로 항아리를 사용하고 있습니까? 웹 서버를 실행하는 사용자와 동일한 사용자입니까? – dstarh

+0

예 웹 사용자가 실행중인 사용자가 –

답변

-1

확실하지 않지만 Files 클래스를 사용하면 파일에서 속성을 읽고 쓸 수 있습니다. 운영 체제에 설정할 특성이있을 수 있습니다.

너무 조작하고 싶다면 setOwner 메소드가 있습니다.