Bonjour,bonsoir,

Nb: je poste ici, sans etre vraiment certain que c'est au bon endroit ...

Donc voilà, j'ai un petit probleme de package il me semble, je m'explique:

Je souhaite faire un client/serveur avec RMI. Le client va se connecter au serveur et va lui demander de faire un echo. Jusque la, tout est basique .

Quand je met le tout dans un seul package ( testRMI) ca fonctionne, bonne compilation, execution, pas de probleme avec java.policy,etc ... c'est nickel .

Par contre, j'ai des difficultées à en faire 2 packages, afin de scinder en 2 le programme. Les packages testClient et testServeur.

Le testCLient doit contenir ( am on avis) Client ; testInterface
Le testServeur lui contiendrait: Serveur ; testInterface : testImpl ( et par la suite testImpl_stub).

NB: les repertoire src/testClient et src/testServeur contient donc ces fichiers dans le meme principe que les package dit ci-desssus.

j'ai donc mis "package testServeur;" pour Serveur ; testInterface : testImpl et "package testClient;" pour client.

en etant a la racine du projet,pour compiler le serveur, je fait :
javac -d classes/ -sourcepath src `find src/testServeur -name "*.java"`

La compilation se passe bien ...

Par contre, pour compiler, en utilisant :
javac -d classes/ -sourcepath src `find src/testClient -name "*.java"` . Ca veut plus compiler, il me dit :

javac -d classes/ -sourcepath src `find src/testClient -name "*.java"`
src/testClient/Client.java:25: cannot find symbol
symbol : class testInterface
location: class testClient.Client
testInterface od1 = null;
^
src/testClient/Client.java:28: cannot find symbol
symbol : class testInterface
location: class testClient.Client
od1 = (testInterface)Naming.lookup(url);
^
2 errors

le code de l'interface qui au final j'ai besoin pour compiler le serveur comme le client:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 package  testServeur;
 
 import java.rmi.*;
 
 /**
  * Interface testInterface
  */
public interface testInterface extends Remote
{
	public String echo(String str) throws RemoteException;
 
}// testInterface
J'ai donc essayer de mettre le fichier d'interface (testInterface) dans les 2 repertoires (src/testClient et src/testServeur), mais voici ce que la compilation me dit:
javac -d classes/ -sourcepath src `find src/testClient -name "*.java"`
src/testClient/testInterface.java:8: duplicate class: testServeur.testInterface
public interface testInterface extends Remote
^
src/testClient/Client.java:25: cannot access testClient.testInterface
bad class file: src/testClient/testInterface.java
file does not contain class testClient.testInterface
Please remove or make sure it appears in the correct subdirectory of the classpath.
testInterface od1 = null;
^
2 errors
Quelqu'un aurait-il une idée sur comment organiser, et comment faire, afin de pouvoir separer en 2 packages, l'un pour le serveur, et l'autre pour le client? merci