Interdependance de class => probleme de compilation

Interdependance de class => probleme de compilation - Java - Programmation

Marsh Posté le 08-11-2002 à 15:18:45    

Bonjour a tous,
 
J'ai un probleme tout bete :
 
J'ai 2 classes d'object A et B, chacune d'elle utilisr l'autre.
A la compilation j'ai un probleme d'interdependance.
Je ne me souviens plus comment resoudre le probleme :( !

Reply

Marsh Posté le 08-11-2002 à 15:18:45   

Reply

Marsh Posté le 08-11-2002 à 15:20:16    

bartleby a écrit a écrit :

Bonjour a tous,
 
J'ai un probleme tout bete :
 
J'ai 2 classes d'object A et B, chacune d'elle utilisr l'autre.
A la compilation j'ai un probleme d'interdependance.
Je ne me souviens plus comment resoudre le probleme :( !



Message d'erreur ? (au minimum !)

Reply

Marsh Posté le 08-11-2002 à 15:26:43    

Euh, ca risque de pas  vous aider du tout...
 

Citation :

D:\MOBILE~1\src>javac -classpath ..\lib\collection.jar;..\lib\jdom.jar;..\lib\xalan.jar;..\lib\xerces.jar;..\classes\.;. -d ..\classes\. *.java
.\agent\AgentItf.java:12: cannot resolve symbol
symbol  : class AgentServerMain
location: interface agent.AgentItf
void init(java.lang.String name, java.lang.String homeHostName,int homePortNumber,AgentServerMain agentServer);
 
   ^
.\agent\MobileAgent.java:45: cannot resolve symbol
symbol  : class AgentServerMainlocation: class agent.MobileAgent
        protected AgentServerMain agentServer;
                  ^
.\agent\MobileAgent.java:52: cannot resolve symbol
symbol  : class AgentServerMain
location: class agent.MobileAgent
MobileAgent(AgentServerMain agentServer, String agentName){
            ^
.\agent\MobileAgent.java:131: cannot resolve symbol
symbol  : class AgentServerMain
location: class agent.MobileAgent
        public void init(String name,String homeHostName, int homePortNumber,Age
ntServerMain agentServer){
                                                                             ^
.\agent\MobileAgent.java:138: cannot resolve symbol
symbol  : class AgentServerMain
location: class agent.MobileAgent
        public void init(String homeHostName, int homePortNumber,AgentServerMain
 agentServer){
                                                                 ^
.\agent\MobileAgentTest.java:11: cannot resolve symbol
symbol  : class AgentServerMain
location: class agent.MobileAgentTest
public MobileAgentTest(AgentServerMain t, String s){
                       ^
Note: AgentServerMain.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
6 errors


 
En gros, AgentServerMain est dans la racine, AgentItf et tout le reste dans le package agent.


Message édité par bartleby le 08-11-2002 à 15:27:50
Reply

Marsh Posté le 08-11-2002 à 15:27:54    

et tu as fait les bons import ?

Reply

Marsh Posté le 08-11-2002 à 15:28:58    

Non, tu as raison. Tout les objects du package agent utilisent un object AgentServerMain, le probleme c'est que cet object est dans un sous-repertoire :( !
 
On peut pas importer les classes d'un package inferieur ( .. quelque chose ) ? Si ?


Message édité par bartleby le 08-11-2002 à 15:30:25
Reply

Marsh Posté le 08-11-2002 à 15:30:19    

AgentServerMain est dans quel package ?

Reply

Marsh Posté le 08-11-2002 à 15:30:49    

AgentServerMain n'est pas dans un package, il est dans la racine

Reply

Marsh Posté le 08-11-2002 à 16:03:55    

bartleby a écrit a écrit :

AgentServerMain n'est pas dans un package, il est dans la racine




 
La racine de quoi ?
Tu l'as pas mis dans un package ?

Reply

Marsh Posté le 08-11-2002 à 19:08:02    

Les règles de dépendance à respecter quand tu compiles sont :  
 
1) au niveau de tes sources : que les imports de chacun des tes sources soient bons => que chacune des classes que tu utilises soit dans le même package ou dans une clause import ou dans java.lang.
 
   sinon, tu vas te prendre des "cannot resolve symbol"
 
2) au niveau de la commande de compilation : que toutes les classes soient accessibles :  
  - compilées (.class) et accessible dans classpath
  - ou non compilées (.java) et faisant partis des fichiers à compiler
 
   sinon tu vas te prendre des NoClassDefFoundError


Message édité par benou le 08-11-2002 à 19:27:36
Reply

Marsh Posté le 09-11-2002 à 10:54:45    

Sinon, tu peux aussi demander à compiler que la classe packagée, en passant "-sourcepath ." comme option à javac, et en te mettant à ta racine, là où est ton fichier AgentServerMain.java

Reply

Sujets relatifs:

Leave a Replay

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