Je rencontre des problèmes lors de la compilation d'une affectation Java RMI dans des packages avec l'interface de ligne de commande sous Windows 10 (impossible d'utiliser Eclipse ou un autre IDE). J'ai besoin de compiler et d'exécuter deux fichiers .java - RemoteBankServer.java et RemoteBankClient.java. Ces deux fichiers utilisent d'autres classes .java (Bank.java, RemoteBankImpl.java, RemoteBank.java, Account.java et sous-classes de Account.java). Auparavant, avec tous mes fichiers dans un dossier, je pourrais facilement compiler et exécuter mon serveur et le client avec deux fenêtres de ligne de commande, avec:Java Compilant l'application serveur/client RMI dans plusieurs paquets
javac RemoteBankServer.java
java RemoteBankServer
et même pour RemoteBankClient. Maintenant que je l'ai testé que mon code fonctionne très bien, je dois les organiser en paquets java, suivant cette structure:
- package name: edu.btp400.w2017.client
class name: RemoteBankClient
- package name: edu.bt400.w2017.server
class names: RemoteBankImpl, RemoteBankServer
- package name: edu.btp400.w2017.common
class name: RemoteBank (and all other classes, like Bank, Account, etc.)
J'ai créé ces dossiers (edu/btp400/w2017 /) et ont placé les classes appropriées dans chaque dossier, mais je ne peux pas le compiler. Pour l'instant, je ces deux lignes en haut de chaque fichier .java:
package edu.btp400.w2017.server; //or .common or .client
import edu.btp400.w2017.*;
Mais je reçois encore des erreurs de compilation lors de la tentative de compiler RemoteBankServer.java (dans le dossier du serveur), comme celui-ci (ce qui est bizarre, parce que RemoteBankImpl est dans le même dossier et RemoteBankServer:
RemoteBankServer.java:40: error: cannot find symbol
RemoteBankImpl b1 = new RemoteBankImpl();
^
symbol: class RemoteBankImpl
location: class RemoteBankServer
ainsi que des erreurs similaires en disant que compte et d'autres classes ne se trouve que je l'ai regardé différents postes sur la façon de compiler avec les packages Java. en utilisant l'interface de ligne de commande, mais je ne l'ai pas obtenu de travail.Toute aide serait grandement appréciée.Parole pour le long message
Edit: est la commande je compiler ci-dessus (après le stockage des fichiers dans différents packages): J'ai essayé dans le dossier contenant edu, et a obtenu 27 erreurs de compilation:
javac -cp . edu/btp400/w2017/server/RemoteBankServer.java
et ce dans le dossier du serveur, et a obtenu 15 erreurs de compilation:
javac RemoteBankServer.java
Edit: Merci à EJP utilisateur, j'ai découvert que je devais inclure les sous-dossiers dans mes déclarations d'importation: au lieu de simplement import edu.btp400.w2017.*;
que je devais faire:
import edu.btp400.w2017.common.*;
import edu.btp400.w2017.server.*;
import edu.btp400.w2017.client.*;
Quelle commande avez-vous utilisé pour compiler? – prasanth
Avez-vous inclus des déclarations de package dans vos fichiers source? – prasanth
@prasanth Oui, j'ai inclus la déclaration de paquet (paquet edu.btp400.w2017.server; (ou n'importe quel dossier dans lequel il se trouve)) dans chaque fichier source. Également modifié le message avec mes commandes. Merci. – zzzzz