Jak poprawnie podzielić na pakiety

0

Mam duży problem z podziałem na pakiety.

Aktualnie robię tak mam katalog w którym mam plik poczta.java w tym katalogu jest katalog listy a w nim plik szkola.java

O to kolejno pliki:


import listy.*;
public class poczta{

public static void main(String[] args) {
System.out.println("hej");
szkola e = new szkola();
e.name="Hogwart";
e.wypisz();
}

}

package listy;

public class szkola{
//int oceny[]={1,2,3,4,5};
//String uczen[]={"Basia","Kasia"};
//String uczniowie[7]=["Basia","Kasia","Zosia","Krysia","Zdziś","Krzyś","Zenek"];
//int a=3;
String name;
public void wypisz(){System.out.println("Hej jak się masz?");}
public static void main(String[] args) {
System.out.println("hej");


}





}

Gdy chce uruchomić ten ostatni to mam taki komunikat:


Error: Could not find or load main class szkola

A gdy chce uruchomić poczte to mam://skompilować znaczy się

C:\java programy\podzial na package>javac poczta.java
poczta.java:2: error: package listy does not exist
import listy.*;
^
poczta.java:8: error: cannot find symbol
szkola e = new szkola();
^
  symbol:   class szkola
  location: class poczta
poczta.java:8: error: cannot find symbol
szkola e = new szkola();
               ^
  symbol:   class szkola
  location: class poczta
3 errors

Jak mogę to naprawić, aby program działał poprawnie?

0

Nie zostawiaj w kodzie na forum tylu pustych wierszy.
Pakiet to podkatalog. Zatem umieść gdziekolwiek plik poczta.java, utwórz podkatalog listy, w nim umieść plik szkola.java i skompiluj (najprościej poleceniem javac *.java). Uruchomiaj jednym z poleceń java poczta lub java listy.szkola.
(Kompilacja się nie powiedzie, w klasie szkola nie ma pola name.)

0

Plik szkola jest w katalogu listy który jest podkatalogiem w którym jest plik poczta.java
plik szkola:

package listy;

public class szkola{

String name;
public void wypisz(){System.out.println("Hej jak się masz?");}
public static void main(String[] args) {
System.out.println("hej");

}
}

plik poczta:

import listy.*;
public class poczta{

public static void main(String[] args) {
System.out.println("hej");
szkola e = new szkola();
e.name="Hogwart";
e.wypisz();
}
}

Mam pole name, robię dokładnie tak jak mówisz mimo to mi się nie kompiluje.

0

Nie masz (widocznego w klasie poczta) pola name.

0

Dałam public teraz przed, nic nie pomogło, jak sprawić aby to pole było widoczne?

(public dałam przed String name;)

Ps daje javac *.java anie javac. *.java

0

Nie wierzę. Jaki masz komunikat błędu?

0


C:\java programy\podzial na package>javac *.java
poczta.java:2: error: package listy does not exist
import listy.*;
^
poczta.java:8: error: cannot find symbol
szkola e = new szkola();
^
  symbol:   class szkola
  location: class poczta
poczta.java:8: error: cannot find symbol
szkola e = new szkola();
               ^
  symbol:   class szkola
  location: class poczta
3 errors

C:\java programy\podzial na package>

Pliki mam tak:

C:\java programy\podzial na package>dir
 Wolumin w stacji C nie ma etykiety.
 Numer seryjny woluminu: E911-A6F0

 Katalog: C:\java programy\podzial na package

2014-05-25  13:28    <DIR>          .
2014-05-25  13:28    <DIR>          ..
2014-05-25  13:57    <DIR>          listy
2014-05-25  14:04               191 poczta.java
               1 plik(ów)                191 bajtów
               3 katalog(ów)  381 659 455 488 bajtów wolnych

C:\java programy\podzial na package\listy>dir
 Wolumin w stacji C nie ma etykiety.
 Numer seryjny woluminu: E911-A6F0

 Katalog: C:\java programy\podzial na package\listy

2014-05-25  14:07    <DIR>          .
2014-05-25  14:07    <DIR>          ..
2014-05-25  13:47               216 szkola.java
               1 plik(ów)                216 bajtów
               2 katalog(ów)  381 659 455 488 bajtów wolnych

W między czasie szukając rozwiązania zmieniłam classpath, myślałam że to mi pomoże, i tu teraz był błąd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1