Archive JAR, comment l'utiliser ? - Java - Programmation
Marsh Posté le 19-08-2002 à 17:11:40
euh ... ca est bizarre ...
Marsh Posté le 19-08-2002 à 17:16:49
Cherrytree a écrit a écrit : Bon, j'explique. J'ai fait un modeste package avec l'outil JAR de Java. quand j'ouvre mon JAR avec WinZip, il m'indique que les fichiers .class et .java sont dans le répertoire ./cherrytree/graph Maintenant je veux utiliser ces classes. Alors je fais un import cherrytree.graph.*; en tête de fichier. J'enregistre une variable globale CLASSPATH avec comme valeur : C:\j2sdk1.4.0\lib\cherrytree.jar (c'est le nom de mon JAR maison). Puis je me décide à compiler :
|
Bon, là clairement, y trouves par tes classes....
essais de faire :
javac -classpath C:\j2sdk1.4.0\lib\cherrytree.jar MonBouzin.java
Pour bien vérifier le fair qu'il utilise le bon classpath... (Change MonBouzin.java quand même... )
Marsh Posté le 19-08-2002 à 17:16:50
euh aherm, c quoi la premiere ligne de tes sources qui sont dans ce jar...?
Marsh Posté le 19-08-2002 à 17:18:03
ReplyMarsh Posté le 19-08-2002 à 17:19:48
Cherrytree a écrit a écrit : package cherrytree.graph; Enfin, il me semble. |
vérifie
Marsh Posté le 19-08-2002 à 17:22:43
therier a écrit a écrit : Bon, là clairement, y trouves par tes classes.... essais de faire : javac -classpath C:\j2sdk1.4.0\lib\cherrytree.jar MonBouzin.java Pour bien vérifier le fair qu'il utilise le bon classpath... (Change MonBouzin.java quand même... ) |
Avec MonBouzin.java, ça merde (:D) par contre avec TaskGraph.java (:sol ça donne :
TaskGraph.java:3:cannot access cherrytree.graph.AdjacencyListDirectedGraph |
Marsh Posté le 19-08-2002 à 17:22:58
ReplyMarsh Posté le 19-08-2002 à 17:23:40
Cherrytree a écrit a écrit : C'est fait, c'est bon. |
Mais ça foire toujours.
Marsh Posté le 19-08-2002 à 17:26:36
Cherrytree a écrit a écrit : Avec MonBouzin.java, ça merde (:D) par contre avec TaskGraph.java (:sol ça donne :
|
Bizarre.... recompile ton AdjacencyListDirectedGraph, à mon avis, il est foireux...
Ou alors, "package cherytree.graph" n'est pas la premiere instruction de ta classe!
Marsh Posté le 19-08-2002 à 17:41:54
Cherrytree a écrit a écrit : Je recompile. |
Le package a changé de taille, et on dirait que cette fois ça marche. Juste une chose, faut il indiquer '.' dans le classpath (j'ai plusieurs fichiers).
Marsh Posté le 19-08-2002 à 17:46:48
Cherrytree a écrit a écrit : Le package a changé de taille, et on dirait que cette fois ça marche. Juste une chose, faut il indiquer '.' dans le classpath (j'ai plusieurs fichiers). |
il ressemble à quoi ton classpath?
Marsh Posté le 19-08-2002 à 17:47:12
Cherrytree a écrit a écrit : Le package a changé de taille, et on dirait que cette fois ça marche. Juste une chose, faut il indiquer '.' dans le classpath (j'ai plusieurs fichiers). |
comment ça indiquer '.'?!?
Marsh Posté le 19-08-2002 à 17:56:17
therier a écrit a écrit : comment ça indiquer '.'?!? |
Le répertoire courant !
Marsh Posté le 19-08-2002 à 17:56:53
--greg-- a écrit a écrit : il ressemble à quoi ton classpath? |
C:\j2sdk1.4.0\lib\cherrytree.jar;
Marsh Posté le 19-08-2002 à 17:58:10
Cherrytree a écrit a écrit : Le répertoire courant ! |
beh si tu veux demarrer ton appli depuis ce rep, oui
Marsh Posté le 19-08-2002 à 18:04:25
--greg-- a écrit a écrit : beh si tu veux demarrer ton appli depuis ce rep, oui |
Je veux surtout qu'en compilant mon fichier, il remarque les autres fichiers du répertoire courant (entre autres Task.java) qui sont nécessaire à la compilation de TaskGraph.java.
Marsh Posté le 19-08-2002 à 18:04:53
Cherrytree a écrit a écrit : Je veux surtout qu'en compilant mon fichier, il remarque les autres fichiers du répertoire courant (entre autres Task.java) qui sont nécessaire à la compilation de TaskGraph.java. |
pareil
Marsh Posté le 19-08-2002 à 18:13:55
Cherrytree a écrit a écrit : Je veux surtout qu'en compilant mon fichier, il remarque les autres fichiers du répertoire courant (entre autres Task.java) qui sont nécessaire à la compilation de TaskGraph.java. |
ben dans ce cas la réponse est oui. C'est assez évident, non ?
Marsh Posté le 19-08-2002 à 18:14:38
Cherrytree a écrit a écrit : J'enregistre une variable globale CLASSPATH avec comme valeur : C:\j2sdk1.4.0\lib\cherrytree.jar (c'est le nom de mon JAR maison). |
mais pourquoi t'es allé mettre ton jar dans le rep lib de la JDK ???
Marsh Posté le 19-08-2002 à 18:14:39
Bon, en indiquant explicitement classpath dans la ligne de commande pour la compilation, ça marche. Par contre, la variable CLASSPATH que j'ai définie sous Win2000, avec le menu Système du Panneau de Config, il s'en fiche royalement.
Marsh Posté le 19-08-2002 à 18:15:52
Cherrytree a écrit a écrit : Bon, en indiquant explicitement classpath dans la ligne de commande pour la compilation, ça marche. Par contre, la variable CLASSPATH que j'ai définie sous Win2000, avec le menu Système du Panneau de Config, il s'en fiche royalement. |
t'as réouvert ta fenetre dos apres l'avoir changé ou tu as gardé la meme ?
edit: tu peux taper SET sous command line pour voir à quoi ressemble ton classpath
sinon, meme question que benou, mais bon.........
Marsh Posté le 19-08-2002 à 18:16:14
benou a écrit a écrit : ben dans ce cas la réponse est oui. C'est assez évident, non ? |
Ben, stadire que par défaut, quand tu compiles un p'tit fichier java, s'il a besoin d'un fichier non compilé du répertoire courant, il le compile avec. Or là avec le classpath, la feature semble désactivée, d'où mon désarroi.
Marsh Posté le 19-08-2002 à 18:16:50
benou a écrit a écrit : mais pourquoi t'es allé mettre ton jar dans le rep lib de la JDK ??? |
Fallais bien la mettre quelque part. Tu la mettrais où ?
Marsh Posté le 19-08-2002 à 18:17:08
--greg-- a écrit a écrit : t'as réouvert ta fenetre dos apres l'avoir changé ou tu as gardé la meme ? edit: tu peux taper SET sous command line pour voir à quoi ressemble ton classpath sinon, meme question que benou, mais bon......... |
Je regarde ça et je reviens.
Marsh Posté le 19-08-2002 à 18:17:10
--greg-- a écrit a écrit : t'as réouvert ta fenetre dos apres l'avoir changé ou tu as gardé la meme ? |
je parie pour la 1ere option !
Marsh Posté le 19-08-2002 à 18:18:00
Cherrytree a écrit a écrit : Je regarde ça et je reviens. |
Bien vu, j'avais pas réinitialisé ma fenêtre.
Marsh Posté le 19-08-2002 à 18:18:24
Cherrytree a écrit a écrit : Ben, stadire que par défaut, quand tu compiles un p'tit fichier java, s'il a besoin d'un fichier non compilé du répertoire courant, il le compile avec. Or là avec le classpath, la feature semble désactivée, d'où mon désarroi. |
c'est justement parce que le répertoire courant n'est plus dans le classpath => il ne va plus chercher les classes à cet endroit => il faut mettre le . dans le classpath
Marsh Posté le 19-08-2002 à 18:19:18
benou a écrit a écrit : c'est justement parce que le répertoire courant n'est plus dans le classpath => il ne va plus chercher les classes à cet endroit => il faut mettre le . dans le classpath |
Yep, alors tout est clair. Tu t'y colles pour l'article ? Je sais, j'ai du retard (un retard monstre même).
Marsh Posté le 19-08-2002 à 18:19:41
Cherrytree a écrit a écrit : Fallais bien la mettre quelque part. Tu la mettrais où ? |
bah dans d:\mysupaproject\lib par exemple...
Marsh Posté le 19-08-2002 à 18:19:56
ReplyMarsh Posté le 19-08-2002 à 18:20:00
Cherrytree a écrit a écrit : Bien vu, j'avais pas réinitialisé ma fenêtre. |
Marsh Posté le 19-08-2002 à 18:20:13
Cherrytree a écrit a écrit : Et sinon, vous le mettriez où ? |
Arrgh, grillé.
Marsh Posté le 19-08-2002 à 18:20:54
--greg-- a écrit a écrit : bah dans d:\mysupaproject\lib par exemple... |
SupaProject ? Hum, pourquoi pas POWAProject ?
Marsh Posté le 19-08-2002 à 18:21:14
Cherrytree a écrit a écrit : Yep, alors tout est clair. Tu t'y colles pour l'article ? Je sais, j'ai du retard (un retard monstre même). |
je suis déjà à la bourre pour celui de l'invocation dynamique ... mais bon, de toute façon, j'ai l'impression qu'il n'y a plus grand monde qui bouge
Marsh Posté le 19-08-2002 à 18:24:03
Cherrytree a écrit a écrit : SupaProject ? Hum, pourquoi pas POWAProject ? |
tiens, supa, spacon, ça pourrait pê coller pour le nom du pseudo framework qui resultera de powa et autour duquel on va batir plein d'autres applis )
ça pourrait vouloir dire quoi supa ?
Marsh Posté le 19-08-2002 à 18:24:22
benou a écrit a écrit : je suis déjà à la bourre pour celui de l'invocation dynamique ... mais bon, de toute façon, j'ai l'impression qu'il n'y a plus grand monde qui bouge |
Si, si, le dével suit son cours et je compte bien faire voir le jour à ce merveilleux site collectif, mais j'ai été un poil optimiste sur les délais que j'ai annoncé. Il faut que j'assure mon stage maintenant, ne t'inquiète pas, tu ne travailles pas pour rien, je te le promets.
Marsh Posté le 19-08-2002 à 17:07:31
Bon, j'explique. J'ai fait un modeste package avec l'outil JAR de Java. quand j'ouvre mon JAR avec WinZip, il m'indique que les fichiers .class et .java sont dans le répertoire ./cherrytree/graph
Maintenant je veux utiliser ces classes. Alors je fais un import cherrytree.graph.*; en tête de fichier.
J'enregistre une variable globale CLASSPATH avec comme valeur : C:\j2sdk1.4.0\lib\cherrytree.jar (c'est le nom de mon JAR maison).
Puis je me décide à compiler :
package cherrytree.graph does not exist
Que me proposez-vous ?
---------------
Le site de ma maman