2009-05-21 4 views
4

Ich habe ein Verzeichnis namens "middle" erstellt und darin ein anderes Verzeichnis namens "tier" und innerhalb des "tier" -Verzeichnisses OrderManager.java, das eine Schnittstelle ist, und OrderManagerImpl.java, das seine Implementierung hat.Warum kann meine Java-Klasse beim Kompilieren aus dem Paketverzeichnis nicht kompiliert werden?

Das Problem ist, wenn ich versuche, OrderManagerImpl.java zu kompilieren von außerhalb der Verpackung middle.tier es kompiliert, aber wenn ich das gleiche in der Verpackung zu tun gibt es mir die folgende Fehlermeldung:

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

Warum ist es damit?

Antwort

8

Da der Compiler erwartet, Ihre Klasse im richtigen Ordner zu finden: ./middle/tier. Wenn Sie versuchen, innerhalb des Pakets zu kompilieren, sucht der Compiler nach Ihrer Klasse in ./middle/tier/middle/tier

+0

Ich dachte, dass der Compiler den Klassenpfad durchsucht, der das aktuelle Verzeichnis enthält – Neal

+0

Ja, so wird es das aktuelle Verzeichnis durchsuchen für middle.tier.OrderManager, das heißt, es sucht nach einem Verzeichnis namens "middle" mit einem Unterverzeichnis namens "tier" - all * unter * dem aktuellen Verzeichnis. –

+0

danke ich habe es verstanden – Neal

Verwandte Themen