Path de l'application .Jar

deiz21 Messages postés 11 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 - 12 oct. 2006 à 10:12
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 - 19 oct. 2006 à 17:28
Bonjour,
j'ai developpé une apllication et l'ai compréssé en .Jar. Le probleme est que dans le code je dois faire appel a des fichiers qui se situent dans le jar lui meme et je n'y suis pas arrivé.
au fait j'ai utilisé cette ligne de code:

url = (new File("./classes/smilies")).getCanonicalPath();

mais ca marche pas.
Je voudrai en profiter d'ailleur pour savoir la signification exact du point "." dans le chemin?
Merci a tous de m'aider.

31 réponses

cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 18
17 oct. 2006 à 17:26
Non sherogath tu te trompes, on ne peut pas sortir un objet de type File (Fichier...) d'un jar aussi facilement... étant donné qu'un jar est en lui même un fichier compressé.

didoux95, pour ton problème, je vais te mettre sur la voix de la solution: (désolé de n'avoir pas répondu plus tot, je n'avais pas vu ces échanges)
Tu utilises actuellement la méthode getClass().getResource("./Nombres.txt"))..
qui te renvoie il un URL.

Il fallait mieux lire mon post: je cite
"Par exemple, si nomRessource vaut: "/ressources/images/img.gif" "

La racine du fichier jar est donc / et non pas ./ , dans ton cas cela donnera
getClass().getResource("/Nombres.txt")).

Sinon, tu peux aussi utiliser la méthode getClass().getResourceAsStream("./Nombres.txt")) qui te renvoie directement un InputStream.


A bientôt!
0
cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 18
17 oct. 2006 à 17:27
Réctificatif:
Sinon, tu peux aussi utiliser la méthode getClass().getResourceAsStream("/Nombres.txt")) qui te renvoie directement un InputStream.
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
17 oct. 2006 à 19:23
je pensais qu'on pouvais obtenir un fichier a partir d'un  jar .... sinon je pense que les fichier auquel tu accede mieu vaut les mettres a l'exterieur du jar
le jar et moins gros puis l'acces au fichier ne peut en etre que plus rapide

cela dit un tour dans la javadoc aurait suffit il me semble
"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 18
17 oct. 2006 à 23:42
Mettre ses fichiers ressources dans le jar présente l'énorme avantage d'avoir une application qui tiens sur un fichier!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
18 oct. 2006 à 13:54
oui mais est ce indispensable ?

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 18
18 oct. 2006 à 15:32
Absolument pas! C'est juste pour rendre l'organisation plus 'pratique'. Combien de personnes font une application avec des ressources "non-jarées", et font ensuite un zip du répertoire pour transférer leur application (mail, ftp, cd, clé usb etc..). Maintenant l'intérèt reste limité
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
18 oct. 2006 à 15:35
voila ^^ c'est un peu la ou j'en voulais venir
je dois avouer que je ne le fais quasiment jamais (les jars) sauf pour des fichier statiques genre icone ...
^^

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
18 oct. 2006 à 18:46
merci bcp.
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
18 oct. 2006 à 20:11
Stoooop.
j'ai une derniere erreur "null pointer exception".
Voila l'exception:
java.lang.NullPointerException
        at java.io.Reader.(Unknown Source)
        at java.io.InputStreamReader.(Unknown Source)
        at java.util.Scanner.(Unknown Source)
        at Cadre_Decomposition_Facteurs_Premiers.(Cadre_Decomposition_Fact
eurs_Premiers.java:45)
        at Application_Decomposition_Facteurs_Premiers.(Application_Decomp
osition_Facteurs_Premiers.java:17)
        at Application_Decomposition_Facteurs_Premiers$1.run(Application_Decompo
sition_Facteurs_Premiers.java:56)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

et voila le code:
try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
           
            if (Diviseur == null){
                String NombresTemporaires = "";
                Scanner Test = new Scanner(getClass().getResourceAsStream("/Nombres.txt"));
                while (Test.hasNext()) {
                    NombresTemporaires += "" + Test.nextLine();
                }
                StringTokenizer ST = new StringTokenizer(NombresTemporaires, ",");
                while (ST.hasMoreTokens()) {
                    String tmp = ST.nextToken();
                    Diviseur.add(Integer.parseInt(tmp.trim()));
                }
            }
        } catch (Exception exception) {
            exception.printStackTrace();
        }

je ne comprend pas d'ou provient cette exception.
merci.
0
cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 18
19 oct. 2006 à 01:25
à quelle ligne correspond la ligne 45?
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
19 oct. 2006 à 17:28
slt,
la ligne 45 correspond à " Scanner Test = new Scanner(getClass().getResourceAsStream("/Nombres.txt")); "

merci.
0
Rejoignez-nous