web-dev-qa-db-fra.com

Création d'un exécutable Jar avec des fichiers externes inclus

Je veux construire un pot exécutable en Java. J'ai besoin d'inclure certains fichiers dans le bocal pour que lorsque j'exécute le bocal, les fichiers soient automatiquement lus à partir de la classe Java. Par conséquent, j'ai créé un dossier dans le projet et référé ces fichiers à partir de la J'ai créé un fichier jar à la suite d'un didacticiel, mais je n'ai pas pu inclure ces fichiers externes dans mon fichier jar. Veuillez me parler de la création d'un fichier exécutable avec des fichiers externes.

La structure de mon fichier est

Test
|
|
-------src
|        |
|        default package
|                      |
|                      |
|                      test1.Java
|
 -------FileFOlder
|              |
|              | 
|              abc.txt

J'accède à abc.txt dans la classe test1.Java. Mon code est,

public class test1 {


public static void main(String[] args) throws IOException {


    char [] read = new char[20];
    String path = new File(".").getCanonicalPath();
    path = path+"\\Newfolder\\abc.txt";
    System.out.println(path);
    File nF = new File(path);
    FileReader fR = new FileReader(nF);
    fR.read(read);
    for(char c : read){
        System.out.print(c);
    }
    fR.close();
    System.out.println(" Hi..This is test program ");
}

}

Lorsque je crée un fichier exécutable à l'aide de l'option d'exportation Eclipse, je ne peux pas voir le répertoire FileFolder à l'intérieur du fichier. Veuillez me donner quelques informations à ce sujet.

14
Anup

Voici ce que vous devriez faire à la place:

Remettez ce fichier dans votre fichier jar. Utilisez class.getResourceAsStream() pour le lire au lieu de File et FileReader. Voici une explication sur la façon de le faire: Comment vraiment lire un fichier texte à partir de classpath en Java

12
Daniel Kaplan

Problème résolu!

voici comment:

1) faites un clic droit sur votre dossier de projet et créez un nouveau dossier.

2) déplacez tous vos fichiers que vous souhaitez emballer dans le bocal dans ce dossier.

3) cliquez sur project -> properties -> Build Path -> Source -> Add Folder et sélectionnez le dossier que vous venez de créer.

4) créez votre JAR!

Puisque vous avez déjà créé votre dossier avec abc.txt insideit, vous pouvez ignorer les étapes 1 et 2

EDIT: une façon de vous assurer que votre JAR contient ces fichiers est d'utiliser 7Zip.

12
scottyseus