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 № 1Mam 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.