[Java] Probleme de dependance/package/import [resolu]

Probleme de dependance/package/import [resolu] [Java] - Java - Programmation

Marsh Posté le 10-05-2004 à 13:08:23    

Pourquoi ce msg d'erreur a la compilation ?  :sweat:  
 


[koko@localhost ant]$ whoami;pwd;echo $CLASSPATH;ll;head -5 ArrayQueue.java;head -23 Ant.java;javac Ant.java
koko
/home/koko/ant
:/home/koko/ant:/home/koko
total 56
-rw-r--r--  1 koko koko  1913 mai  5 11:32 Ant.class
-rw-r--r--  1 koko koko 12763 mai 10 13:05 Ant.java
-rw-r--r--  1 koko koko   649 mai  5 13:02 AntMain.java
-rw-rw-r--  1 koko koko  3247 mai 10 12:55 ArrayQueue.java
-rw-rw-r--  1 koko koko  3186 mai  5 16:59 CircularQueue.java
drwxrwxr-x  2 koko koko  4096 mai  3 11:27 docs/
-rw-r--r--  1 koko koko   369 mai  3 19:44 Prototype.java
-rw-rw-r--  1 koko koko   222 mai  5 17:50 QueueFullException.java
-rw-rw-r--  1 koko koko  1082 mai  5 17:50 Queue.java
-rw-r--r--  1 koko koko  1095 mai  5 12:19 TSP.class
-rw-r--r--  1 koko koko   728 mai  5 12:19 TSP.java
package ant;
// A simple fixed-size queue.
public class ArrayQueue {
 
  // The number of items in me.
/*******************************************************************************
*
* Program       :
*
* File          : Ant.java
*
* written by: FF
*
* summary       : class for hacking Hardware.fr :D
*
* date      : 03/05/2004
*
*******************************************************************************/
 
package ant;
import java.util.LinkedList;
import ArrayQueue;
 
 
public class Ant
{
 
        /* constantes variables */
Ant.java:1: error:Import of type  "ArrayQueue" from unnamed package [JLS 7.6]
Ant.java:1: error:Can not found "ArrayQueue" [JLS 7.5.2, 7.6]
Ant.java:1: error:Cannot find class "ArrayQueue" [JLS 8]
[koko@localhost ant]$


 
help  :cry:  
 
PS : j'ai lu de la doc et j'ai fais une recherche...j'aimerais pas y passer des heures :/


Message édité par Giz le 10-05-2004 à 18:17:24
Reply

Marsh Posté le 10-05-2004 à 13:08:23   

Reply

Marsh Posté le 10-05-2004 à 13:41:07    

vire le "import ArrayQueue"
 
les classes du package courant et celles de java.lang sont importées automatiquement. Et il est impossible d'importer explicitement une classe du package <unnamed>


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 10-05-2004 à 16:43:06    

nraynaud a écrit :

vire le "import ArrayQueue"
 
les classes du package courant et celles de java.lang sont importées automatiquement. Et il est impossible d'importer explicitement une classe du package <unnamed>



Les classes fournies avec le Java Development Kit ou par d'autres sources sont rangées dans des packages (ou paquets si vous préférez), comparables à des groupes rassemblant les classes par thème. Dans un fichier .java, vous devez indiquer à quels packages appartiennent les classes que vous utilisez. La clause import permet de spécifier ces packages pour chacune des classes ou pour chaque groupe de classes. Ces clauses se placent en début de fichier avant la déclaration de la première classe ou interface du fichier :  
 
[g]import nomClasse;            // Importer une classe sans package[/g]
import nomPackage.nomClasse; // Importer une classe d'un package
import nomPackage.*;         // Importer toutes les classes d'un package
 
 
import est suivi soit directement du nom d'une classe, soit du nom d'un package, suivi lui-même du nom d'une classe ou d'un astérisque (*). L'astérisque permet d'importer les classes d'un package à la demande, c'est-à-dire que quand le compilateur recherchera une classe Classe1 qu'il ne connaît pas encore, il cherchera notamment dans les packages suivis d'un astérisque si Classe1 existe.
 La classe nomClasse peut correspondre soit à un fichier source nomClasse.java, soit à un fichier compilé nomClasse.class, dans lequel est définie la classe public à importer.


 
la doc me semble etre clair pourtant :/
et si tu regardes bien la sortie, il y a :

[g]package ant;[/g]
// A simple fixed-size queue.  
public class ArrayQueue {


 
Ma classe appartient bien a un package :o

Reply

Marsh Posté le 10-05-2004 à 16:45:41    

Giz a écrit :


Ma classe appartient bien a un package :o


Justement. Deux classes publiques (ou protected) appartenant à un même package se connaissent ; pas besoin d'import.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 10-05-2004 à 16:54:29    

Taiche a écrit :

Justement. Deux classes publiques (ou protected) appartenant à un même package se connaissent ; pas besoin d'import.


Bon j'ai vire l'import dans Ant.java et voila :


[koko@localhost ant]$ javac Ant.java
Ant.java:43: error:Cannot find class "ArrayQueue" [JLS 8]
[koko@localhost ant]$


 
:/

Reply

Marsh Posté le 10-05-2004 à 17:04:09    

Citation :

import nomClasse;            // Importer une classe sans package


ca j'ai testé y a pas longtemps ca marche pas ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2004 à 17:05:12    

oué, tu as raison, je viens d'aller voir la vraie doc.
 
bah alors "import ant.ArrayQueue;" ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 10-05-2004 à 17:10:23    

nraynaud a écrit :

oué, tu as raison, je viens d'aller voir la vraie doc.
 
bah alors "import ant.ArrayQueue;" ?


 
et voila... :
 


[koko@localhost ant]$ javac Ant.java
Ant.java:1: error:Can not found "ant/ArrayQueue" [JLS 7.5.2, 7.6]
Ant.java:1: error:Cannot find class "ant/ArrayQueue" [JLS 8]
Ant.java:1: error:Unaccessible class "ant/ArrayQueue" can not be imported [JLS 7.5.1]
[koko@localhost ant]$


 
:/

Reply

Marsh Posté le 10-05-2004 à 17:13:20    

problème de classpath ...
 
et c'est quoi ton compilateur tout bizarre là ? :o


Message édité par benou le 10-05-2004 à 17:13:30

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2004 à 17:15:42    

benou a écrit :

problème de classpath ...
 
et c'est quoi ton compilateur tout bizarre là ? :o


 
pour le classpath, j'ai tout donne au 1er post (echo $CLASSPATH)
 
pour le compilo, j'ai oublie...


[koko@localhost ant]$ java -version
Kaffe Virtual Machine
 
Copyright (c) 1996-2002 Kaffe.org project contributors (please see
  the source code for a full list of contributors).  All rights reserved.
Portions Copyright (c) 1996-2002 Transvirtual Technologies, Inc.
 
The Kaffe virtual machine is free software, licensed under the terms of
the GNU General Public License.  Kaffe.org is a an independent, free software
community project, not directly affiliated with Transvirtual Technologies,
Inc.  Kaffe is a Trademark of Transvirtual Technologies, Inc.  Kaffe comes
with ABSOLUTELY NO WARRANTY.
 
Engine: Just-in-time v3   Version: 1.1.2   Java Version: 1.1
 
[koko@localhost ant]$ javac --version
Version 2.1A released 11. February 2002
[koko@localhost ant]$


 
et voila :)
 
EDIT : je suis sous Mdk10 Community (plutot recent qd meme  :o )


Message édité par Giz le 10-05-2004 à 17:17:29
Reply

Marsh Posté le 10-05-2004 à 17:15:42   

Reply

Marsh Posté le 10-05-2004 à 17:18:35    

Giz a écrit :

pour le classpath, j'ai tout donne au 1er post (echo $CLASSPATH)


vire le /home/koko/ant de ton classpath : c'est une erreur.
Je crois pas que c'est pour ca que ca marche pas, mais bon ...
 
Pourquoi tu te sers pas du compilo et de la JVM de sun ?


Message édité par benou le 10-05-2004 à 17:18:43

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2004 à 17:24:41    

benou a écrit :

vire le /home/koko/ant de ton classpath : c'est une erreur.
Je crois pas que c'est pour ca que ca marche pas, mais bon ...
 
Pourquoi tu te sers pas du compilo et de la JVM de sun ?


 
bon j'ai fais...


[koko@localhost ant]$ vi ~/.bash_profile
[koko@localhost ant]$ unset CLASSPATH
[koko@localhost ant]$ echo $CLASSPATH
 
[koko@localhost ant]$ source ~/.bash_profile
bash: TMOUT: readonly variable
[koko@localhost ant]$ echo $CLASSPATH
:/home/koko
[koko@localhost ant]$ javac Ant.java
Ant.java:1: error:Can not found "ant/ArrayQueue" [JLS 7.5.2, 7.6]
Ant.java:1: error:Cannot find class "ant/ArrayQueue" [JLS 8]
Ant.java:1: error:Unaccessible class "ant/ArrayQueue" can not be imported [JLS 7.5.1]
[koko@localhost ant]$


 
...tjs le meme pb :/
 
Pour le compilo je pense que celui la marche c celui fourni dans mes package  [:spamafote]

Reply

Marsh Posté le 10-05-2004 à 18:00:05    

Bon j'ai demande a mon entourage (dans la salle ou je bosse : c qd meme un laboratoire d'informatique (en Espagne), ils st trois et personne ne connait le java, jsuis oblige d'attendre mon boss (y'a que lui qui s'y connait j'ai l'impression  :sarcastic: ))
 

Reply

Marsh Posté le 10-05-2004 à 18:02:20    

essaye javac *.java


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2004 à 18:08:39    

benou a écrit :

essaye javac *.java


 


[koko@localhost ant]$ head -3 TSP.java
package tsp;
public class TSP
{
[koko@localhost ant]$ javac *.java
AntMain.java:1: error:Import of type  "TSP" from unnamed package [JLS 7.6]
[koko@localhost ant]$


 
:/

Reply

Marsh Posté le 10-05-2004 à 18:11:30    

Giz a écrit :

[fixed]
 
:/


on t'as déjà dit de virer les import nomDeClasse; :o


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2004 à 18:15:25    

bon mon boss ne voyait pas trop, en fait c t une erreur a 2 balles :
Il faut compiler le fichier ArrayQueue.java avt de compiler Ant.java.
Java quel con...en C/C++ des qu'on fait un include, les fichiers inclus sont automatiquement compiles (ca me semble tellement logique  :sarcastic: )
 
Merci bien quand meme  :hello:


Message édité par Giz le 10-05-2004 à 18:16:51
Reply

Marsh Posté le 10-05-2004 à 18:22:14    

Giz a écrit :


Java quel con


jikes [:aloy]

Reply

Marsh Posté le 10-05-2004 à 18:27:40    

Giz a écrit :

bon mon boss ne voyait pas trop, en fait c t une erreur a 2 balles


ouais, c'est bien ce que je pensais. C'est pour ca que je t'ai dis de faire javac *.java. Si tu avais pas eu d'erreur dans un autre de tes sources ca aurait marché


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2004 à 18:28:31    

Giz a écrit :

Java quel con...


bha il fait ce que tu lui dis ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2004 à 18:33:40    

benou a écrit :

bha il fait ce que tu lui dis ...


 
ouai mais bon il manque de jugeote aussi  :sarcastic: , dans tous les cas faut compiler le fichier ArrayQueue.java, pkoi le faire manuellement  :sarcastic:  :??:

Reply

Marsh Posté le 10-05-2004 à 18:42:02    

Giz a écrit :

ouai mais bon il manque de jugeote aussi  :sarcastic: , dans tous les cas faut compiler le fichier ArrayQueue.java, pkoi le faire manuellement  :sarcastic:  :??:


attends, tu lui demandes EXPLICTEMENT de compiler UN fichier !


Message édité par benou le 10-05-2004 à 18:42:13

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2004 à 18:46:43    

benou a écrit :

attends, tu lui demandes EXPLICTEMENT de compiler UN fichier !


 
vi, et le mot cle import il sert pour quoi lui ?  :sarcastic:  
PS : tu connais le C/C++ ?  :heink:

Reply

Marsh Posté le 10-05-2004 à 18:53:53    

Giz a écrit :

vi, et le mot cle import il sert pour quoi lui ?  :sarcastic:  
PS : tu connais le C/C++ ?  :heink:


oui je connais, et justement je fais la distincition entre le import java et le import c. Ils n'ont pas la même signication.
 
quand on débute on évite de critiquer n'importe quoi sans savoir ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 10-05-2004 à 19:45:56    

Giz a écrit :

bon mon boss ne voyait pas trop, en fait c t une erreur a 2 balles :
Il faut compiler le fichier ArrayQueue.java avt de compiler Ant.java.
Java quel con...en C/C++ des qu'on fait un include, les fichiers inclus sont automatiquement compiles (ca me semble tellement logique  :sarcastic: )
 
Merci bien quand meme  :hello:

Je peux voir le layout de tes répertoires ?
J'ai un gros doute sur un truc ...


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed