IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Java7 Files.copy jar executable


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 2
    Par défaut Java7 Files.copy jar executable
    Bonjour,
    J'espère que vous vous portez bien, moi non, la raison est la suivante:

    J'utilise une methode pour dezipper un fichier, merci à F. Martini (adiGuba) pour execellent tutoriel sur java7

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    public void deziper(final Path zipFile, final Path destDir) throws IOException
    	  { 	 
    		// On crée un FileSystem associé à l'archive :
    	        try ( FileSystem zfs = FileSystems.newFileSystem(zipFile, null) ) {
    	            // On parcourt tous les éléments root :
    	            for (Path root : zfs.getRootDirectories()) {
    	                // Et on parcourt toutes leurs arborescences :
    	                Files.walkFileTree(root, new SimpleFileVisitor<Path>() {
    	                    private Path unzippedPath(Path path) {
                                    return Paths.get(destDir.toString(), path.toString()).normalize();
    	                    }
     
    	                    @Override
    	                    public FileVisitResult preVisitDirectory(Path dir,
    	                            BasicFileAttributes attrs) throws IOException {
    	                        // On crée chaque répertoire intermédiaire :
    	                        Files.createDirectories(unzippedPath(dir));
    	                        return FileVisitResult.CONTINUE;
    	                    }
     
    	                    @Override
    	                    public FileVisitResult visitFile(Path file,
    	                            BasicFileAttributes attrs) throws IOException {
    	                        // Et on copie chaque fichier :
    	                        Files.copy(file, unzippedPath(file), StandardCopyOption.COPY_ATTRIBUTES, StandardCopyOption.REPLACE_EXISTING);
    	                        return FileVisitResult.CONTINUE;
    	                    }
    	                });
    	            }
    	        }
    	   }
    Les fichiers existant sont écrasés sant problème, sauf un fichier jar executable qui se trouve dans le même repertoire que l'application et ce fichier n'est pas en cours d'utilisation l'erreur qui s'affiche est la suivante:

    09oct.2012 13:52:12,484 - 0 [AWT-EventQueue-0] WARN barakahfx.ModuleUpdater - Exception
    java.nio.file.AccessDeniedException: G:\Program Files\Djindo\Imanis\Djindo.jar
    at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
    at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
    at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
    at sun.nio.fs.WindowsFileSystemProvider.implDelete(Unknown Source)
    at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(Unknown Source)
    at java.nio.file.Files.deleteIfExists(Unknown Source)
    at java.nio.file.CopyMoveHelper.copyToForeignTarget(Unknown Source)
    at java.nio.file.Files.copy(Unknown Source)
    at lib.GererFichier$3.visitFile(GererFichier.java:167)
    at lib.GererFichier$3.visitFile(GererFichier.java:150)
    at java.nio.file.FileTreeWalker.walk(Unknown Source)
    at java.nio.file.FileTreeWalker.walk(Unknown Source)
    at java.nio.file.FileTreeWalker.walk(Unknown Source)
    at java.nio.file.Files.walkFileTree(Unknown Source)
    at java.nio.file.Files.walkFileTree(Unknown Source)
    at lib.GererFichier.deziper(GererFichier.java:150)
    at barakahfx.ModuleUpdater.demarrerUpdate(ModuleUpdater.java:98)
    at barakahfx.AppliCtrl.demarrer(AppliCtrl.java:92)
    at barakahfx.BarakahFx$1.actionPerformed(BarakahFx.java:56)
    at javax.swing.Timer.fireActionPerformed(Unknown Source)
    at javax.swing.Timer$DoPostEvent.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Merci à tous ceux qui porteront une attention même des plus minimes à ma préoccupation.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par brandonroubi Voir le message
    ce fichier n'est pas en cours d'utilisation
    Tu en es sûr ? C'est quoi ce fichier ? A quoi sert-il ?


    Sous Windows dès qu'un fichier est ouvert en lecture par n'importe quel programme, il ne peut pas être modifié...


    a++

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 2
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,


    Tu en es sûr ? C'est quoi ce fichier ? A quoi sert-il ?


    Sous Windows dès qu'un fichier est ouvert en lecture par n'importe quel programme, il ne peut pas être modifié...


    a++
    Salut
    Yes le maitre himself qui me répond.
    D'abord l'architecture:

    REPERTOIRE PRINCIPAL IMANIS
    IMANIS
    • Djindo.jar
    • Updater.jar
    • Info.txt
    • Lib(Repertoire)
    • Themes(repertoire)

    Dans le repertoire principal de mon application j'ai 2 fichiers jar executables.
    - Un fichier jar "Updater.jar"
    - Un autre fichier jar "Djindo.jar"

    * Le fichier Updater.jar est celui qui est exécuté en premier, il permet de mettre à jour mon application, des fichiers zip sont téléchargés depuis le serveur puis stockés dans un repertoire temporaire.
    Les fichiers sont par la suite décompressés dans le repertoire principal de l'application

    * Quand la mise à jour est terminée le fichier Updater.jar execute le fichier Djindo.jar pour demarrer l'application et ensuite le Updater.jar se ferme.

    Voilà en gros.
    Le fichier Info.txt mis correctement à jour.
    Tout se passe bien sauf quand je veux mettre à jour le fichier Djindo.jar. J'obtiens l'erreur ci-dessus.
    Je viens juste de vérifier le code je m'assure effectivement que toute décompression soit terminée avant de demarrer le fichier Djindo.jar.
    Le fichier Djindo.jar n'est pas utilisé par un autre processus ou application avant que je demarre l'application.

    Merci.

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Utilises ProcessExplorer : http://technet.microsoft.com/en-us/s.../bb896653.aspx

    Une fois lancé, fais Ctrl+F et recherche le nom du fichier. Cela devrait te donner le nom du process qui conserve ce fichier ouvert...

    a++

Discussions similaires

  1. [JAR]Connection Mysql et jar executable
    Par Jones dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 01/04/2005, 14h27
  2. pb jbuilder et jar executable
    Par kliel dans le forum JBuilder
    Réponses: 9
    Dernier message: 23/12/2004, 00h28
  3. [JAR] jar executable cliquable
    Par spoutyoyo dans le forum Général Java
    Réponses: 8
    Dernier message: 22/12/2004, 16h04
  4. [Jar]Creation d'un jar executable
    Par Wisefool dans le forum Général Java
    Réponses: 22
    Dernier message: 26/11/2004, 11h40
  5. [jar executable][Service NT]
    Par paca_mike dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 28/04/2003, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo