• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed java i javac w konsoli. Error: Could not find or load main class

Object Storage Arubacloud
0 głosów
8,842 wizyt
pytanie zadane 15 października 2017 w Java przez mibdbz Gaduła (4,300 p.)
zamknięte 15 października 2017 przez mibdbz

Witam. Problem polega na tym, że polecenie javac działa bez problemu. Tworzy się nowy plik z rozszerzeniem .class. Natomiast polecenie java z nazwa pliku już niestety nie działa. Mam zainstalowaną jave 1.8.0_144

ścieżka PATH do JDK jest ustawiona na katalog, w którym rzeczywiście się znajduje.

W konsoli wyskakuje mi błąd Error: Could not find or load main class HelloWorld

Co mogę zrobić aby plik ze zwykłym Hello World się uruchamiał?

 

Z góry dziękuję za odpowiedzi!!

komentarz zamknięcia: Uzyskanie odpowiedzi
1
komentarz 15 października 2017 przez mbabane Szeryf (79,280 p.)

Chodzi o pakiety. Linia pierwsza package definiuje przestrzeń nazw do której należy klasa i po skompilowaniu ta klasa musi znajdować się w folderze o nazwie takiej jak pakiet (w tym przypadku helloworld). A pełna nazwa klasy składa się z nazw pakietów i z nazwy samej klasy. Pakiet to nic innego jak folder.

Wykonując polecenie bezpośrednio w katalogu z klasą, java szukała klasy HelloWorld, a klasa którą chciałeś wywołać dla javy ma nazwę helloworld.HelloWorld.

komentarz 15 października 2017 przez mibdbz Gaduła (4,300 p.)
Dzięki za wytłumaczenie. Bardzo się przyda. Ale skorzystam jeszcze z Twojej wiedzy i uprzejmości. Jeśli miałbym program składający się z wielu pakietów to wywołuje to tak samo? Java znajdzie sobie implementację innych pakietów w pliku z klasą main?
1
komentarz 15 października 2017 przez mbabane Szeryf (79,280 p.)

Szczerze powiedziawszy to dokładnie nie wiem jakby to wyglądało, ponieważ korzystam z IDE do zarządzania takimi rzeczami, bo ręcznie jak sam zauważyłeś może to sprawiać dodatkowy kłopot.

Ale zdaje się że trzeba by wywoływać z katalogu nadrzędnego względem wszystkich wykorzystywanych pakietów, bo java szuka pakietów od bieżącego foldera w górę.

Mając np. taki kod:

package pakiet1;

public class Word
{
	public String word;
}
package pakiet;
import pakiet1.Word;

public class HelloWorld
{
	public static void main(String args[])
	{
		System.out.println("Czesc");

		Word word = new Word();
		word.word = "Witam";

		System.out.println(word.word);
	}
}

Układ plików:

java
├───pakiet
│     HelloWorld.java
│
└───pakiet1
      Word.java

Lista poleceń mogłaby wyglądać tak:

F:\java>javac pakiet/*.java pakiet1/*.java

F:\java>java pakiet.HelloWorld
Czesc
Witam

F:\java>

 

1
komentarz 15 października 2017 przez mibdbz Gaduła (4,300 p.)
Bardzo dziękuję za odpowiedź i za poświęcony czas. Przygoda z pakietami w wbrew pozorom dużo mnie nauczyła. Zamykam temat.
komentarz 15 października 2017 przez mbabane Szeryf (79,280 p.)
W sumie to dobrze, że zacząłeś od konsoli i ręcznego kompilowania bo w IDE nawet byś nie zauważył pewnych elementów związanych z pakietami. W IDE po prostu robisz milion pakietów i jednym kliknięciem wszystko odpalasz.

Podobne pytania

0 głosów
1 odpowiedź 3,431 wizyt
pytanie zadane 9 maja 2017 w Java przez Milesq Nałogowiec (32,020 p.)
0 głosów
1 odpowiedź 275 wizyt
pytanie zadane 24 marca 2020 w C i C++ przez Ururka Nowicjusz (230 p.)
0 głosów
1 odpowiedź 147 wizyt
pytanie zadane 29 października 2020 w Java przez Jedwab Użytkownik (550 p.)

92,576 zapytań

141,426 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...