[JAVA] Problème Executable JAR (Accès refusé)

a marqué ce sujet comme résolu.

Salut à tous,

j’ai un problème avec un programme qui marche bien sur Eclipse, mais pas lorsqu’il est exporté en Runnable JAR.

Je m’explique : j’ai un fichier qui indique la progression du programme. Si le fichier n’existe pas, on le créé, sinon on l’ouvre et on écrit dedans.

Cela marche bien sous eclipse, mais lorsque je l’exporte, si le fichier n’existe pas, pas de problème, il est créé et on écrit dedans, mais si il existe alors j’ai une erreur. Voici le code utilisé :

        String donePath = "./done.txt";
        try {
            File doneFile = new File(donePath);
            doneFile.createNewFile();
            allreadyDone = new ArrayList<String>(Arrays.asList(new String(
                                Files.readAllBytes(Paths.get(donePath))).split("\n")));
            doneFileWriter =  new FileWriter(donePath, true);
        } catch (IOException e1) {
            e1.printStackTrace();
        }

et l’erreur renvoyée est :

java.io.FileNotFoundException: .\done.txt (Accès refusé)
        at java.base/java.io.FileOutputStream.open0(Native Method)
        at java.base/java.io.FileOutputStream.open(FileOutputStream.java:292)
        at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:235)
        at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:156)
        at java.base/java.io.FileWriter.<init>(FileWriter.java:82)
        at =============.Main.main(Main.java:51)

Merci d’avance pour votre aide !

Hello,

C’est clairement écrit dans la javadoc pour File::createNewFile:

Atomically creates a new, empty file named by this abstract pathname if and only if a file with this name does not yet exist.

Donc si le fichier existe déjà, une exception est lancée. Ca marche certainement dans eclipse car il crée probablement à chaque fois un dossier temporaire.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte