Lecture de fichier

Comment fait-on pour gérer correctement les fichiers en java (sans outil de structuration de projet) ? J'ai un (des) projets en java où j'utilise VSCode. Les images, fichiers ou répertoires sont mis en chemin relatifs et j'utilise le settings.json pour configurer les sourcespaths. Quand je teste dans vscode, tout marche, mais si je veux exporter en .jar dans un autre dossier, souvent, le programme ne trouve pas les fichiers. J'ai le problème quand les fichiers sont inclus dans le jar ou s'ils sont à l'extérieur. J'ai fais des recherches et pourtant je ne trouve rien de concluant. Là où j'étudie, tout le monde semble avoir ce problème et n'ont pas de solution. Est ce que quelqu'un ici sait comment faire ? Pour donner un contexte plus précis, dans mon projet, j'ai à la racine de mon projet un ".vscode/", "data/" et "src/". J'aimerais pouvoir utiliser la classe java.io.File pour connaitre les fichiers contenu dans le répertoire "data" et pour gérer les fichiers qui sont inclus dedans. Dans le contexte de Vscode ça fonctionne normalement mais si je met dans un jar j'ai mes File qui ont la valeur null.
6 Replies
Xibalba
Xibalba7mo ago
Un fichier jar c'est comme un fichier zip, ça contient juste des dossiers. Du coup c'est possible qu'il cherche dans le dossier data du jar plutôt que dans le dossier à côté du jar Essaie
String jarPos = UneClasse.class.getProtectionDomain().getCodeSource().getLocation().getPath();
String dataDir = new File(new File(jarPath).getParent() + "/data")
String jarPos = UneClasse.class.getProtectionDomain().getCodeSource().getLocation().getPath();
String dataDir = new File(new File(jarPath).getParent() + "/data")
Maximeuuu
Maximeuuu7mo ago
Dans mon cas, actuellement, j'ai tout dans le jar que vscode a créé. Les datas aussi mais si j'exécute de jar, il ne trouve pas les fichiers du dossier data qui est dans le jar. Alors qu'avec une exécution du projet via vscode ça marche. Je regarderai ça aussi ça pourrait m'être aussi utile
Xibalba
Xibalba7mo ago
ah ok tu veux que le dossier data soit dans le jar ? Dans ce cas il faut le mettre dans le dossier src/main/ressources pour qu'il soit ajouté au jar a la compilation
Maximeuuu
Maximeuuu7mo ago
Même si je n'utilise pas maven, il faut quand même le mettre dans ce dossier ? Il faut configurer le settings.json de vscode ?
Xibalba
Xibalba7mo ago
comme je disait un .jar c'est comme un .zip, tu peut faire clic droit -> extraire du coup test des trucs
Maximeuuu
Maximeuuu7mo ago
Ah ok je vois
Want results from more Discord servers?
Add your server