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 :
le code de l'interface qui au final j'ai besoin pour compiler le serveur comme le client: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
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:
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
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? mercijavac -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
Partager