Eclipse: l'exportation .jar ET inclure des fichiers de ressources (ANT)
Notre projet dans eclipse environ affiche les dossiers suivants:
application
- src
- JRE System Library [1.6]
- Referenced Libraries
- lib
- rsc
Dans notre projet, nous souhaitons utiliser le Fichier > Export... > Exécutable JAR
Bien, ce qui fonctionne parfaitement, avec une exception: Si nous voulons lancer notre application.jar avons-nous encore besoin de copier le dossier src/dans le même emplacement que application.jar.
Dans src/, nous avons d'autres dossiers pour la séparation des différentes parties.
En gros, on charge les pièces en utilisant le code (un peu modifié, mais le chemin le style est correct)
strUrl = "file:rsc/properties/Constants.properties";
url = new URL(strUrl);
ImageIcon icon = new ImageIcon(url);
Je pourrais faire un clic droit sur rsc/> Build Path > Utiliser comme Source de Dossier.
Mais cela ne fonctionne pas, soit parce que l'éclipse n'est pas de copier automatiquement le rsc dossier dans la corbeille/-dossier. Et puis on ne peut pas exécuter plus de terminal (non emballés dans des pots)
MODIFIER: pourquoi est-eclipse incapable de gérer cela correctement? Pourquoi a-t-elle des problèmes avec "imbriqués" sortie des dossiers? Dans la Source-onglet de la construction du Chemin de dialogue, je pourrais facilement ajouter de la rsc/-dossier avec le dossier de sortie définie à bin/src/, mais il ne semble pas être en mesure de mettre sur les dossiers imbriqués...
EDIT 2: Maintenant, j'ai été en mesure de créer un fichier xml pour construire les trucs avec des fourmis, et en quelque sorte réussi à mettre la rsc-dossier dans le bocal. Ne fonctionne toujours pas pour la même raison erreurs. Ai-je vraiment besoin de vérifier les ressources des chemins si ils sont dans un BOCAL ou pas? Le POT est maintenant la suivante:
META-INF/
META-INF/MANIFEST.MF
configurator/
controller/
editor/
gui/
logic/
networking/
rsc/
rsc/gamesettings/
rsc/levels/
rsc/pics/
rsc/properties/
util/
mais Java encore me déteste et jette java.io.FileNotFoundException: rsc/properties/Constants.properties
avec une stacktrace de l'ordre de 100 lignes.
quelqu'un à une idée de comment le faire? thx & en ce qui concerne
OriginalL'auteur Atmocreations | 2010-01-15
Vous devez vous connecter pour publier un commentaire.
Si vous marquez
rsc
comme un dossier source Eclipse va copier son contenu dans le répertoire de sortie. Ou vous pouvez simplement déplacerrsc
soussrc
si vous souhaitez regrouper les ressources dans la sortie.Ensuite, vous pouvez utiliser
Class.getResource("/properties/Constants.properties")
ouClass.getResource("/rsc/properties/Constants.properties")
et il fonctionnera peu importe si votre application est emballé comme un pot ou en cours d'exécution à partir de la source.Au passage, le
file:
protocole fonctionne uniquement avec les fichiers normaux, pour accéder à des fichiers à l'intérieur du bocal, vous auriez à utiliser quelque chose commenew URL("jar:file:app.jar!/rsc/properties/Constants.properties")
./
. merci et salutationsDésolé, qu'entendez-vous par
Class#getResource()
? Il n'y a pas de méthode statique dansClass
classe.La méthode n'est pas statique, désolé pour la confusion.
Berindei pouvez-vous répondre à ma question pls ? stackoverflow.com/questions/38685537/...
il y a une non-méthode statique
getResource(String)
OriginalL'auteur Dan Berindei
Vous pourriez essayer: Dans le Java Build Path dialogue, allez à l'onglet Bibliothèques et sélectionnez "Ajouter un Dossier de Classe...". Sélectionnez
rsc
à partir de la Classe de boîte de dialogue de Sélection de Dossier. Le contenu de larsc
répertoire sera désormais inclus dans le fichier jar exécutable.(Note que la src lui-même ne sera pas inclus, donc vous pouvez avoir à ajouter un nouveau sous-répertoire dans le rsc pour faire la structure de répertoire dans le pot à droite.)
OriginalL'auteur Ash
Pour ce genre d'utilisation, je le conseille à l'aide de Maven, qui effectue que lors de la création d'un jar. Il y a même un plugin Eclipse.
Vous pouvez également utiliser Ant.
OriginalL'auteur Valentin Rocher
Je le fais habituellement, manuellement, dans votre cas
jar-uf foo.jar rsc
qui comprend l'ensemble de vos ressources.
Vous pouvez écrire un script ou le faire en ant
OriginalL'auteur Frank
Comme vous le dites dans Edit 2 que vous avez tous dans un bocal, cela devrait fonctionner:
OriginalL'auteur rodrigoap