/ / Dostęp do plików w oddzielnych pakietach w Javie - java, import

Dostęp do plików w osobnych pakietach w Javie - java, import

Mam problem z dostępem do kilku klas w oddzielnych folderach dla projektu, który mam w szkole. Używam Geany i muszę mieć możliwość rozmawiania z tymi klasami, że tak powiem.

Istnieje jeden główny folder, w którym wszystkie oddzielne pakiety są zawarte jako własne foldery, aw każdym folderze znajdują się wszystkie klasy właściwe dla tego pakietu.

W moim przypadku, potrzebuję móc mieć niektóre z klas w pakiecie gameObjects do użycia w pakiecie komponentów. próbowałem

import gameObjects.Room;
import gameObjects.Entity;

ale pojawia się ten błąd kompilacji:

Position.java:3: error: package gameObjects does not exist

Czy istnieje sposób, aby te klasy mogły ze sobą rozmawiać? Z góry dziękuję.

EDYCJA: Ścieżka do katalogu wygląda następująco:

C:UsersmattDesktopNew folderProject

iw tym folderze projektu znajduje się wiele folderów, w których znajdują się oddzielne klasy. Muszę mieć możliwość rozmawiania ze sobą w dwóch klasach z różnych folderów w folderze Moje projekty.

Kompiluję się tak

C:UsersmattDesktopNew folderProjectcomponents>javac Position.java

EDIT # 2: Obie klasy Room i Entity są zawarte w folderze / pakiecie o nazwie gameObjects, a one, wraz z każdą inną klasą w tym folderze zawiera

package gameObjects;

jako pierwszą linię.

Odpowiedzi:

1 dla odpowiedzi № 1

Mam problem z dostępem do kilku klas w osobnych folderach dla projektu

Folder to w zasadzie pakiety. Więc klasa Pokój i encja nie mogą znajdować się w różnych folderach, ponieważ jak pisałeś:

import gameObjects.Room;
import gameObjects.Entity;

Te klasy powinny znajdować się w folderze / pakiecie "gameObjects". Myślę więc, że struktura twojego projektu jest zła. Jeśli chcesz zachować je w różnych folderach, będzie to inna paczka.

Position.java:3: błąd: pakiet gameObjects nie istnieje

Umieść obie klasy w folderze gameObjects, a następnie dodaj pierwszy wiersz każdego pliku "pakiet gameObjects;"


0 dla odpowiedzi nr 2

Putting .java pliki w oddzielnym folderze w eksploratorze nie oznaczają, że określasz każdy pakiet dla nich. Aby mieć możliwość importowania klas, musisz upewnić się, że określono a pakiet dla nich. Osiągasz to poprzez umieszczenie:

package gameObjects;

linia na samym początku właściwego .java plik. Po określeniu tego pakietu można zaimportować klasy zawarte w tym pakiecie za pomocą:

import gameObjects.nameOfClass;

Zwróć uwagę, że jeśli nie określisz a package na początku .java plik, następnie jest zawarty w domyślna pakiet (masz dostęp do klas zawartych w domyślna pakiet tylko z innych klas zawartych w domyślna także pakiet). Nie możesz importować klas, które nie mają package nameOfYourPackage; oświadczenie na samym początku .java plik, więc nie możesz ich użyć poza domyślna pakiet.

Zwróć uwagę, że Java zajmuje się wstawianiem .java pliki do określonych folderów na dysku twardym samodzielnie. Tak więc, kiedy określisz swoje sample.java plik jest zawarty w yourpackage, istnieje folder o nazwie yourpackage utworzone w twoim katalogu projektu i sample.java jest umieszczany w tym folderze.