J'essaie d'obtenir un chemin vers une ressource mais je n'ai pas eu de chance.
Cela fonctionne (à la fois dans l'IDE et avec le JAR) mais de cette façon, je ne peux pas obtenir le chemin d'accès à un fichier, seulement le contenu du fichier :
ClassLoader classLoader = getClass().getClassLoader();
PrintInputStream(classLoader.getResourceAsStream("config/netclient.p"));
Si je fais ça :
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("config/netclient.p").getFile());
Le résultat est : java.io.FileNotFoundException: file:/path/to/jarfile/bot.jar!/config/netclient.p (No such file or directory)
Existe-t-il un moyen d'obtenir le chemin d'accès à un fichier de ressources ?
0 votes
Puis-je vous demander pourquoi vous avez besoin de ce chemin ?
1 votes
Oui. J'ai une classe avec laquelle je voudrais travailler avec les deux, un dossier à l'extérieur (au cas où je voudrais changer un paramètre du fichier de configuration) et un JAR qui cache les fichiers de configuration de l'implémentation à l'utilisateur (comme un JAR distribuable à tous).
1 votes
Ainsi, la classe reçoit simplement un PATH vers un fichier (le fichier de configuration).
3 votes
Alors vous devriez probablement faire en sorte que cette classe traite un flux d'entrée, qui peut provenir de n'importe quelle source.
1 votes
Oui, je sais. Mais ça aurait été plus clair et propre dans l'autre sens. Mais merci quand même.
1 votes
Essayez-vous de faire quelque chose comme l'option n°4 de cette question ? stackoverflow.com/questions/775389/
1 votes
J'ai à peu près le même problème. Je veux pouvoir regrouper une image dans un JAR et ensuite, au moment de l'exécution, utiliser cette image dans un JTextPanel en utilisant HTML. Le HTML nécessite soit un chemin relatif (et de définir la base du document à quelque chose d'approprié) ou un chemin absolu. Pouvez-vous obtenir ce chemin pour un fichier dans un JAR ?
1 votes
Non, vous ne pouvez pas. Vous pouvez obtenir un InputStream du fichier mais vous ne pouvez pas obtenir un chemin.