IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Unable To Launch

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Neaktivní uživatel:17.7.2017 21:58

Ahoj, v Jave sa ešte len učím a spolu s knihou od Herberta Schildta - Java8 si študujem aj články od Vás. Všetko si priamo trénujem, aby sa mi to lepšie zapamätalo, avšak narazil som na jeden nepríjemný problém, a keďže som začiatočník, tak neviem čo s tým. Kód som skúšal aj niekoľko krát prepísať a vždy ten istý problém - program nemôžem spustiť. Preto prikladám obrázok orig. kódu z knihy, môjho kódu aj ten error. Pomohli by ste mi prosím? (v)

Odpovědět
17.7.2017 21:58
Neaktivní uživatelský účet
Avatar
Atrament
Tvůrce
Avatar
Atrament:17.7.2017 23:39

Eclipse očividně neví co má spustit, tak ve výpisu souborů klikni na Vozidlo.java pravým tlačítkem a mělo by tam být něco jako Run file nebo tak něco (Eclipse nepoužívám, tak nevím jak to tam přesně má). To by snad mělo fungovat.

 
Nahoru Odpovědět
17.7.2017 23:39
Avatar
Odpovídá na Atrament
Neaktivní uživatel:18.7.2017 9:47

Anoo vďaka. Ale zaujímalo by ma samozrejme čo som robil zle, alebo kvôli čomu to nešlo spustiť? Aby som ten problém poznal trochu hlbšie, než len čo mám stlačiť. Vedel by si mi to vysvetliť? Každopádne už to funguje

Nahoru Odpovědět
18.7.2017 9:47
Neaktivní uživatelský účet
Avatar
Robert Michalovič:18.7.2017 11:49

Máš to špatně přepsané. public static void main spouštěcí metodu máš uloženo ve vnořené třídě.

class Vozidlo {
        ...
}
public class PridejMetodu {
        public static void main(String [] args){
                ...
        }
}
 
Nahoru Odpovědět
18.7.2017 11:49
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Atrament:18.7.2017 11:57

Jelikož nevím jak jsi vytvořil projekt a cos pak prováděl dále a hlavně nepoužívám Eclipse tak můžu jenom hádat, ale myslím že nebudu daleko od pravdy.

Všechny tyhlety IDE jako Eclipse, Netbeans atd. používají nějaký buildovací systém, tj systém, který (nejenom) automatizuje proces zbuildování a spouštění aplikace. Velmi zjednodušeně řečeno když vytvoříš nový projekt v Eclipse (nebo jiném IDE) tak se zároveň vytvoří konfigurace pro ten buildovací systém, který dané IDE používá (např mnou používané Netbeans používá defaultně Apache Ant, Eclipse tuším defaultně používá nějaký přímo vlastní).

Tato konfigurace se vytvoří na základě informací, které ty jakožto uživatel zadáš při vytváření nového projektu. Takže když tam zadáš aby se vytvořila třída MojeTřída s metodou main, tak se taky zapíše do konfigurace, aby se pro spouštění aplikace používala tato třída s metodou main. Takže když pak stiskneš tlačítko Run, tak se IDE podívá do této konfigurace, podle ní buildne aplikaci (pokud je potřeba) a spustí příslušnou metodu main.

Pokud ale po vytvoření projektu si ty vytvoříš nějakou jinou třídu s metodou main (a tu starou odstraníš nebo třeba přejmenuješ), tak IDE obvykle najednou neví co má spouštět, protože to prostě nemá v konfiguraci. Takže ho musíš popostrčit způsobem jaký jsem popsal výše - ukázat mu co spustit. On si updatne konfiguraci a napříště už bude vědět.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
18.7.2017 11:57
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Robert Michalovič
Atrament:18.7.2017 11:59

To bylo první co mně napadlo, ale nemá, má to akorát špatně zformátované takže to tak jenom vypadá :) Jsem rád že nejsem sám kdo se nechal nachytat :))

 
Nahoru Odpovědět
18.7.2017 11:59
Avatar
Odpovídá na Atrament
Robert Michalovič:18.7.2017 12:22

Ok, má tam tu závorku ukončující třídu Vozidlo. V každém případě to má ale blbě. public static void main metoda není v public class. Tudíž nejde spustit. Stačí když to přepíše do verze jak jsem to předtím uvedl, přejmenuje zdrojový soubor na PridejMetodu.java a bude mu to fungovat.

 
Nahoru Odpovědět
18.7.2017 12:22
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Robert Michalovič
Atrament:18.7.2017 12:31

Jj to je taky jedna z možností...

 
Nahoru Odpovědět
18.7.2017 12:31
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.