Java, permission denied do /tmp/
Zdravim, nemohu prijit na to, proc mi java vyhazuje vyjimku pri zapisovani do /tmp/ na ubuntu.
Promenna 'p' obsahuje "/tmp/Statistics_05.01.2014.html";
Metoda:
private File writeStatistics(String HTML) throws IOException{
File file_html = new File(super.filename+".html");
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file_html),"UTF-8")); //zde vyjimka
bw.write(HTML);
bw.flush();
bw.close();
return file_html;
}
Vyjimka:
java.io.FileNotFoundException: /tmp/Statistics_05.01.2014.html (Permission denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:171)
at application.data.classes.output.html.HTMLOutputFormat.writeStatistics(HTMLOutputFormat.java:227)
Diky za pomoc.
Nemáš tam právo zápisu.
Do /tmp na linuxu ma pravo zapisu uplne kdokoliv a cokoliv.
Ještě můžeš zkusit:
Nezabralo...
Nikde nevidim cestu k tomu souboru. Co je v super.filename?
V tom je ulozen vystup z teto metody:
Hmmm...
Pokud chces v Jave zapisovat do temp souboru, mel bys pouzit:
Zbytek by mohl zustat stejny...
Ahaa. Takze tento zpusob by to mel vyresit?
Ako prvé by som skontroloval, či ten súbor "/tmp/Statistics_05.01.2014.html" už existuje.
Ano jiz tam byl. Po smazani uz to jde. Ale je divne, ze ho neprepisoval. Nyni, kdyz se tam vytvori, tak uz to vyjimku nevyhazuje i kdyz tam je. Predtim ji to vyhazovalo i kdyz tam byl. Mozna byl ten soubor nejaky rozbity.
Kazdopadne to pomohlo.
los - diky.
Niet za čo. Predtým to nefungovalo, pretože práva na ten predchádzajúci súbor mal niekto iný.
Nekdo jiny? Kdyz zapisuji porad pod stejnym uzivatelem? Cim myslis "nekdo jiny"?
Nemohl jsi mit ten svuj program spusteny 2x?
Nejsem si toho vedom, ale urcite se to mohlo stat.
No, to si mal zisťovať predtým, než si ten súbor vymazal. A taká situácia sa ti môže zopakovať, tak buď pripravený.
Tak priste Diky za vysvetleni.