comment implémenter un objet dont le .class est dans autre répertoire

comment implémenter un objet dont le .class est dans autre répertoire - Java - Programmation

Marsh Posté le 28-10-2005 à 15:55:45    

Bonjour,
1 - Est-ce que quelqu'un aurait une idée sur la manière d'implémenter un objet dont le .class se trouve dans un autre répértoire que celui qui contient le .class du programme appelant ?
 
2 - Lorsque que j'execute un programme via .getRuntime.exec(), le programme appelé est ralenti tant que je n'ai pas tuer le programme appelant. Existerait il une solution pour garder les 2 programmes executés, et qu'ils tournent correctement ?

Reply

Marsh Posté le 28-10-2005 à 15:55:45   

Reply

Marsh Posté le 28-10-2005 à 15:59:06    

A la question 1, ajouter l'autre répertoire au classpath, ça ne te convient pas ????

Reply

Marsh Posté le 28-10-2005 à 16:49:06    

si, je me suis mal exprimé. Dans chacun des objets (appelé et appelant), je crée un socket qui se connecte sur le même serveur via le port 23. Lorsque je met les .class au même endroit, il n' y a aucun soucis. Lorsque je les mets à des endroits différents, ça compile et s'execute bien, l'objet se crée, mais la connection au serveur ne se fait pas par le programme appelé. Et j'ai le même cas lorsque j'implémente cet objet (appelé) via un executable lançé par un .getRuntime.exec()

Reply

Marsh Posté le 29-10-2005 à 18:16:50    

Un petit bout de ton code serait bienvenu, car tes explications ne me semblent pas très clair. Si, comme tu le dis, "Lorsque je les mets à des endroits différents, ça compile et s'execute bien, l'objet se crée", c'est que le fait d'avoir tes fichiers .class dans des répertoires différents ne pose aucun problème.

Reply

Marsh Posté le 31-10-2005 à 08:29:14    

voilà mon code, j'ai essayé avec 2 manières :  
 
1)
/* crée un objet qui contient une fenêtre et crée une connexion au serveur*/
LanceApplication lance=new LanceApplication (...);
lance.start();
       
2)
/*je lance un executable qui crée un objet créant une fenêtre et une connexion au serveur*/
try
{
 Runtime run = Runtime.getRuntime();
 String str = "...";
 Process proc = run.exec(str);
 inter.setCursor(Cursor.WAIT_CURSOR);
 proc.waitFor();
 inter.setCursor(Cursor.DEFAULT_CURSOR);
}
catch(IOException ioe)
{
      System.out.println(ioe.getMessage());
}
catch(InterruptedException ie)
{
      System.out.println(ie.getMessage() );
}
 
 
Dans les 2 cas, lorsque tous les .class sont dans le même répértoire, la fenêtre se crée et la connexion au serveur se fait.
Par contre, lorsque je met les .class des objets créés à ce moment dans un autre répértoire, la fenêtre se crée mais la connexion au serveur ne se fait pas.


Message édité par saha54 le 31-10-2005 à 08:30:21
Reply

Marsh Posté le 31-10-2005 à 11:07:17    

Code :
  1. Runtime run = Runtime.getRuntime();
  2. String str = "...";
  3. Process proc = run.exec(str);


 
N'est-ce pas tout bêtement que, lorsque tes .class sont dans des répertoires différents, le chemin d'accès au programme que tu veux exécuter est différent ?

Reply

Marsh Posté le 10-11-2005 à 12:00:38    

desolé pour le temps de réponse. C'est effectivement qu'il y avait des chemins en dur dans le code et que ça posait pb.
Merci en tout cas.

Reply

Sujets relatifs:

Leave a Replay

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