2009-05-21 4 views
4

J'ai créé un répertoire appelé "middle" et à l'intérieur un autre répertoire appelé "tier" et à l'intérieur du répertoire "tier" sont OrderManager.java qui est une interface et OrderManagerImpl.java ayant son implémentation.Pourquoi ma classe Java échoue-t-elle à compiler lorsqu'elle est compilée depuis le répertoire du paquetage?

Le problème est quand je tente de compiler OrderManagerImpl.java hors du package middle.tier il compile, mais quand je fais la même chose à l'intérieur du paquet, il me donne l'erreur suivante:

 
OrderManagerImpl.java:6: cannot find symbol 
symbol: class OrderManager 
public class OrderManagerImpl extends java.rmi.server.UnicastRemoteObject implements OrderManager{ 

Pourquoi est-il alors?

Répondre

8

Parce que le compilateur s'attend à trouver votre classe dans le bon dossier: ./middle/tier. Lorsque vous essayez de compiler à l'intérieur du paquet, le compilateur recherche votre classe dans ./middle/tier/middle/tier

+0

Je pensais que le compilateur ensablait le chemin de classe qui inclut le répertoire courant – Neal

+0

Oui, donc il va chercher dans le répertoire courant pour middle.tier.OrderManager, ce qui signifie qu'il recherche un répertoire appelé "middle" avec un sous-répertoire appelé "tier" - all * sous * le répertoire courant. –

+0

merci je l'ai eu – Neal

Questions connexes