penso che in realtà è impossibile tenere correttamente le autorizzazioni.
Permessi sono molto OS specifica: mentre i permessi dei file POSIX consentono all'utente di impostare se è possibile leggere, scrivere o eseguire un file per il proprietario del file, il gruppo e gli altri, il file system NTFS ha un sistema simile, ma il concetto perché un permesso di esecuzione è inesistente. E il primo sistema di file FAT/FAT32, non ha affatto permessi di file (una parte dall'attributo di sola lettura).
Essere cross-platform, sarebbe difficile per Java per impostare l'autorizzazione correttamente i file appena creati (decompressi) a seconda del sistema operativo sottostante ....
Detto questo, Java 6 ha un nuovo java .io.File class che ti permette di impostare permessi (con metodi come setExecutable(), setReadable(), ecc ... vedi http://java.sun.com/javase/6/docs/api/java/io/File.html)
Questi mi hanno aiutato molto, specialmente il setExecutable() che era il mio principale interesse quando si devono decomprimere gli eseguibili su un file system Linux. E non devi preoccuparti di capire quale sistema operativo stai utilizzando, poiché il metodo non farà nulla se si esegue Windows o altri sistemi senza il concetto di file eseguibili.
So che questo è un post piuttosto vecchio ma hai risolto il problema? Sto avendo lo stesso problema adesso; Sembra che solo un file eseguibile possa interessare fino a quel momento ... quando lo decomprimo "a mano" il permesso è corretto – dm76
Non l'ho risolto in realtà. Il mio ultimo vettore di approccio sarebbe stato quello di separare il compito della formica di apache per manipolare i file zip e determinare cosa stavano facendo. –
Ant può farlo solo dal 1.8, utilizzando la nuova funzionalità di Java.io.File in java 6 (vedere la mia risposta di seguito) – dm76