- Nemo,
Bonjour, Je travaille toujours sur mon même projet qui utilise une base de donnée H2. J’ai placé le fichier de cette dernière dans un dossier nommé resources de mon projet dans Eclipse et ajusté mon code pour l’utiliser via getResources(). Ça fonctionne bien lorsque j’éxécute mon projet via Eclipse, mais lorsque j’exporte celui-ci en fichier jar exécutable contenant également les resources, il semble que l’éxécutable du jar ne parvienne pas a trouver le fichier de BDD…
J’aimerais avoir votre avis sur la manière la plus propre et efficace pour intégrer des resources a un projet Eclipse de manière à ce que ce dernier puisse être exporté directement en jar éxécutable…
Et si le code doit être différent suivant qu’il est éxécuté à partir d’Eclipse ou à partir du Jar éxécutable, j’aimerais avoir un moyen d’adapter le code pour ne rien avoir à changer préalablement d’un contexte d’éxécution à l’autre…
Voici à quoi ressemble l’arborescence de mon projet:
Et voici un aperçu du contenu de mon jar exporté, (dans le dossier resources se trouvent bien les fichier de ma BDD:
Et voici un extrait de mon code qui réfère à l’utilisation de ce fichier BDD en resources:
1 2 | static final String DB_URL = "jdbc:h2:" + MainApp.class.getResource("resources/FCEN2015.h2.db").getPath().replaceAll(".h2.db", "").replaceAll("%20", " "); |
Note: Je dois supprimer le .h2.db du path que je passe au driver de jdbc car il ne doit pas avoir l’extension du fichier pour fonctionner. Et je fais remplacer le %20 que met le getPath() à la place de l’espace qui se retrouve dans le "Google Drive" qui se retrouve dans le path, sinon ça plante…