Linux scrie fișierul din java jar

Scriu în fișier text dintr-un executabil Java jar. Borcanul generează fișierul corect, dar permisiunea fișierului este setată la rădăcină, prin urmare celălalt Javascript nu poate citi fișierul. Returnează "permisiunea respinsă" când încerc să citesc fișierul prin ajax. Cum pot remedia problema când creez fișierul în Java? În prezent rulez Java 1.6.

N-am avut această problemă când am rulat aplicația în timpul eclipsei. Odată ce l-am transferat, permisiunea de jar a fost schimbată la accesul la root.

Eu conduc borcanul a

exec('java -jar writeToFile.jar');

Scrierea în fișier este standard

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();
    }
}

Scrierea în fișier funcționează bine, creează fișierul cu directorul corect și cu datele dorite, doar diferența dintre rularea în eclipsă și executarea acestuia prin jar este permisiunea de fișier. Borcanul a setat fișierul la root.

0
la ce utilizatori folosiți borcanul? este același utilizator care rulează serverul web?
adăugat autor dstarh, sursa
Da, este același utilizator cu care rulează utilizatorul web
adăugat autor ßee, sursa
Mă îndoiesc că Java va crea fișierul ca fiind deținut de rădăcină dacă nu sunteți root când îl executați. Vă recomandăm să confirmați faptul că sunteți utilizatorul pe care îl credeți că sunteți prin imprimarea System.getProperty ("user.name") din același cod care creează fișierul.
adăugat autor John Watts, sursa
Blind presupune că WebServer-ul tău nu are permisiunea de a accesa acest fișier. Sau că există o blocare a fișierului deținută de codul java care nu o închide. Arătați-ne un cod, sau - mai bine încă - creați SSCE .
adăugat autor npe, sursa

1 răspunsuri

Nu sunt sigur, dar cu Fișiere , puteți citi și scrie atribute în fișiere. Poate fi un anumit atribut sistemului dvs. de operare care trebuie setat.

Există o metodă setOwner dacă doriți să o manipulați.

0
adăugat
JavaScript, România - Moldova
JavaScript, România - Moldova
328 participanți

Comunitatea Română JavaScript: github.com/js-ro Pentru confort, opriți notificările. Parteneri: @node_ro, @php_ro, @python_ro, @seo_ro, @RomaniaGroup, @ai_ro, @Grupuri_IT Offtop: @holywars_ro Joburi: @js_jobs_ro Sponsored with ❤️ by ciupacabra.com