NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Začátky v Javě a prvotní problémy

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

Aktivity
Avatar
Jaroslav 'Yarosslove' Prejza:10.10.2017 15:24

Ahoj všem,

začal jsem se samostudiem Javy,sem v úplných začátcích, učím se podle Učebnice jazyka Java (r.v. 2007) od Pavla Herouta. Po přečtení první cca 20 spíše teoretických stránek jsem narazil na, pro mnoho z vás, banální problém. Tím je spuštění souboru .java v příkazovém řádku. Snad vše zatím říkám srozumitelně. Nyní napíšu citaci přímo z knihy od p. Herouta:

"Zkuste si na svém počítači v textovém editoru (Notepad) přesně opsat následující nejjednodušší program v Javě. Je důležité, aby se soubor jmenoval Prvni.java....
Příklad 1:

public class Prvni {
public static void main(String)[] args) {
System.out.println ("Ahoj:);
}
}

...Máme-li soubor, pokusíme se jej přeložit. Jste-li v MS Windows, vyvolejte command promt (příkazovou řádku DOSu pomocí Start/Program­s/Command prompt. Pak se přepněte do adresáře, ve kterém je uložen soubor Prvni.java, a spusťte překladač javac.exe Příkaz je:
java Prvni

"
konec citace

A teď ten problém - v Notepadu jsem opsal, co napsal autor, uložil jako Prvni.java. Dále jsem vyvolal Příkazovou řádku a nyní nastal onen problém. "Pak se přepněte do adresáře, ve kterém je uložen soubor Prvni.java a spusťte překladač javac.exe"

První, co mi příkazový řádek nabídl je "C:\Users\Admi­nistrator>" Soubor Prvni.java je uložen v adresáři: C:\Users\Admi­nistrator\Docu­ments\. Mám drobný znalosti (ale fakt drobný) přík. řádku, takže jsem se pomocí příkazu "cd.." dostal postupně do nejvyšší úrovně, adresa: C:\>. Sem jsme chtěl dle knihy napsat adresu Prvni.java, tj. C:\Users\Admi­nistrator\Docu­ments\, ale nevím jak se "zbavit" špičaté závorky ">", protože jinak bude cesta C:\>Users\Admi­nistrator\Docu­ments\. Zkusil sem i toto, ale Přík. řádek vypíše:

C:\Users\Admi­nistrator>Docu­ments\
'Documents\' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\Admi­nistrator>C:\U­sers\Administra­tor\Documents\
'C:\Users\Admi­nistrator\Docu­ments\' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\Admi­nistrator>cd..

C:\Users>cd..

C:\>Users\Admi­nistrator\Docu­ments\
'Users\Adminis­trator\Documen­ts\' is not recognized as an internal or external command,
operable program or batch file.

Podotýkám, že přesnou adresu Prvni.java sme "převzal" ze souborového manažeru (Multi commander) pomocí ctrl c+v

Poté, co se dostanu do adresáře, kde je umístěnej soubor Prvni.java, mám spustit překladač javac.exe, jeho adresa je: C:\Program Files\Java\jdk-9\bin\. Pak má vznikonout soubor Prvni.class, který spustíte pomocí interpreteru java.exe - jak? v příkazovém řádku(?). Cesta souboru java.exe je totožná s javac.exe, tj. C:\Program Files\Java\jdk-9\bin\.

Zkouším i Netbeans IDE, ale popravděi s tím se musím nejřív seznámit, alespoň základní ovládání. A navíc jsem se zde někde dočet, že člověk může být překvapenej, když pak v jiným PC nemá svůj oblíbený/ používaný IDE překladač. Nevím, zda je jednodušší/ vhodnější začít přes IDE nebo Přík. řádku.

Snad jsem vše popsal srozumitelně (opravdu jsem se snažil:-P), navíc ne jeden dotaz. Budu rád za každou odpověď, která mě dokáže posunout na další krok.

Díky

Jarda

 
Odpovědět
10.10.2017 15:24
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Jaroslav 'Yarosslove' Prejza
gcx11:10.10.2017 15:30

Ahoj,
to

C:\Users\Administrator>

ukazuje, v kterém adresáři se zrovna nacházíš. Pokud se chceš dostat někam dále, stačí použít příkaz cd a cestu. Můžeš mu předhodit celou cestu:

C:\Users\Administrator>cd C:\Users\Administrator\Documents\

anebo název podsložky, kam má sestoupit:

C:\Users\Administrator>cd Documents

A takto se dostaň do složky se zdrojovým kódem.

Editováno 10.10.2017 15:31
 
Nahoru Odpovědět
10.10.2017 15:30
Avatar
Odpovídá na gcx11
Jaroslav 'Yarosslove' Prejza:10.10.2017 16:55

Díky za odpověď, jeden dílčí krok je vyřešen. Vygooglil jsme i to, že to jde přes středník tj. C:\Users\Admi­nistrator>;C:\U­sers\Administra­tor\Documents\Prvni­.java. Tvý řešení je ale kratší:)

Další dílčí krok jsme ovšem stále nevyřešil:-/

Citace z knihy:

...Máme-li soubor, pokusíme se jej přeložit. Jste-li v MS Windows, vyvolejte command promt (příkazovou řádku DOSu pomocí Start/Program­s/Command prompt. Pak se přepněte do adresáře, ve kterém je uložen soubor Prvni.java,

A SPUSŤTE PŘEKLADAČ JAVAC.EXE. PŘÍKAZ JE:
java Prvni

Do adresáře jsem se přepnul, tj. C:\Users\Admi­nistrator\Docu­ments\ a teď jak spustit ten překladač javac.exe, jeho adresa je: C:\Program Files\Java\jdk-9\bin\

Další text z knihy, citace:
"Po úspěšném překladu vznikne soubor Prvni.class, který spusťte pomocí interpreteru java.exe.
Příkaz je:
java Prvni

" konec citace

Tedy nejdřív jak spustím překladač javac.exe (příkaz, cesta), kam se uloží soubor Prvni.class (stejně jako Prvni.java?) a pak jak spustím interpreter java.exe?

Díky

J.

 
Nahoru Odpovědět
10.10.2017 16:55
Avatar
Odpovídá na Jaroslav 'Yarosslove' Prejza
Erik Bystroň:10.10.2017 17:24

Technologie jdou hodně rychle do předu a to co v té knížce je už nemusí být úplně přesné, dnes už se programy v notepadu nepišou... Aspoň teda ve většině případů ;-) Dnes se používají IDE, které tyto věci řeší za tebe a vše to spustíš jedním klikem :-)

 
Nahoru Odpovědět
10.10.2017 17:24
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Jaroslav 'Yarosslove' Prejza
gcx11:10.10.2017 17:45

Myslím, že něco takového:

C:\Users\Administrator\Documents\> C:\Program Files\Java\jdk-9\bin\javac.exe Prvni.java

Pokud to máš na PATH, tak stačí pouze:

C:\Users\Administrator\Documents\> javac Prvni.java
 
Nahoru Odpovědět
10.10.2017 17:45
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:10.10.2017 18:46

hlavně tam nepiš ty přípony.
javac - cli příkaz pro kompilaci třídy do .class souboru
java - spuštění .class souboru (pokud obsahuje main metodu)
java -jar - spuštění .jar souboru

Toto je ale fakt zbytečné se učit. V texťáku neprogramují už ani phpčkaři, kteří si hodně dlouho vystačili i s pspadem.
NetBeans je vcelku slušné IDE pro začátečníky (tak jak to ukazují i tady ve zdejších seriálech).
Vyser se na textové soubory, to je jen perlička, když chceš ohromit mamku s taťkou.
IDE ti pomáhá hlavně se syntaxí a tobě jako programátorovi odpadnou syntaktické debugy a zbydou ti zlehka běhové a hlavně logické chyby.

Navíc už jen to, že bys chtěl používat windows cli.... (cli = comand line)
Kdyby to byl aspoň linux, tak neřeknu. Dokonce něco takového se ti tu a tam vyplatí i v samotném java kódu, když si přes javu chceš spustit třeba jiný .jar program nebo jakýkoliv jiný. Ale command lina ve windows je spíš dekorace. Nejpoužívanější commandy jsou snad jen ping, ipconfig a mount. Ale co bys chtěl ve windows dělat, to si nedovedu moc představit:)

Takže jak ti tu radil Erik, nainstaluj nebeany a trénuj. Jestli chceš takhle ťukat kód od začátku, tak si nainstaluj aspoň blueJ. Ten ti to aspoň zkompiluje (i když je pravda, že na unit testy a rychlé examply je blueJ daleko víc efektivnější než ta ostatní 3 IDEčka:), ale to je už věc názoru)

Prostě netbeans a nazdar

Nahoru Odpovědět
10.10.2017 18:46
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
Odpovídá na Jaroslav 'Yarosslove' Prejza
Robert Michalovič:11.10.2017 8:59

Tak za prvé být tebou nepoužíval bych Javu 9. Vyšla teprve před týdnem a bude mít spoustu chyb v sobě. Přišla s ní modularita, která zásadně ovlivňuje build projektů a aplikací. Nicméně u příkladu s jednou třídou typu "Hallo World" by to nemělo být žádný vliv. Takže být tebou odinstaluj ji a naistaluj si Java8 tu poslední myslím update 131.

Za druhé, pokud chceš udělat spouštění programu přes příkazový řádek(Cmd) koukni sem. V bodě 1 a 2 je to ukázáno. https://www.itnetwork.cz/…face-bez-ide
Samozřejmě nezapomeň vložit svou třídu (CTRL+C,CTRL+V).

public class Prvni {
        public static void main(String)[] args) {
                System.out.println ("Ahoj:);
        }
}

Kompilace bude

javac Prvni.java

Spusteni

java Prvni

Toto všechno bude fungovat když to budeš mít CMD spuštěný v adresáři C:\Program Files\Java\jdk-9\bin\

PS. pokud chceš mít přístup k programům ( z např. ...\Java\bin\.... )odkudkoliv z přes CMD je nutno nastavit systémovou proměnnou PATH. (https://www.itnetwork.cz/…clipse-mingw ) - viz. první část instalace Javy.

Editováno 11.10.2017 9:01
 
Nahoru Odpovědět
11.10.2017 8:59
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Robert Michalovič
gcx11:11.10.2017 9:24

Nějaký důkaz tvého tvrzení?

Java 9 planned schedule:

2016/05/26 Feature Complete
2016/08/11 All Tests Run
2016/12? Rampdown Start
2016/01? Zero Bug Bounce
2017/03? Rampdown Phase 2
2017/05? Final Release Candidate
2017/07? General Availability

With the project deadline extended due to already being behind schedule, the team is open to minor requests but discourages new feature requests and instead plans to devote efforts toward reaching stability.

 
Nahoru Odpovědět
11.10.2017 9:24
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Robert Michalovič
gcx11:11.10.2017 9:28

Navíc Java je navrhovaná s důrazem na zpětnou kompatibilitu, takže lze v Javě 9 psát kód bez použití balíčků a bude to fungovat stejně jako v Javě 8.

 
Nahoru Odpovědět
11.10.2017 9:28
Avatar
Odpovídá na gcx11
Marian Benčat:11.10.2017 15:23

Jo, kotlin taky :D

Nahoru Odpovědět
11.10.2017 15:23
Totalitní admini..
Avatar
Odpovídá na gcx11
Robert Michalovič:11.10.2017 16:22

Ale abych vzpomenul např. Java8 update8,15 byla chyba. Jednalo se o přesun instancí přes stateful beanu v EJB 3.2 v rámci session na lokálního klienta. Přestože to bylo v JavaEE tak problém byl bug v JavaSE v rámci CORBA a opraveno to bylo až v 8_20. Dokonce se to řešilo na stackoverflow. (Zde je např. seznam bugů v 8_20 např. http://www.oracle.com/…2257730.html) A tak to funguje skoro každý update.

Skutečně miluji mudly 8-) jak mě budou poučovat o Javě. Programuji již v ní nějaký ten pátek a vím která bije.
Zažil jsem přechod na 6, 7 a 8čku. Nyní nás všechny čeká 9tka.

Tvůj příspěvek jenom dokazuje, že jsi na žádném pořádném programu(projektu) co vyvíjí tak 10-20 let v Javě ještě nepracoval. Většina zkušenějších(se­niorů) vývojářů, architektů považuje stabilní verzi Javy od update min. 50+. A zjevně nemáš ani pořádnou zkušenost s převodem programů do vyšších verzí, jinak bys tak hloupou otázku ani nepoložil. A je naivní a bláhové se domnívat, že už nikdy žádné bugy v Javě nebudou. Pokud používáš Javu na expertní úrovni pak tě bugy v Javě docela obtěžují. Pokud se domníváš, že vezmeš pořádný projekt a jenom změníš JDK nebo JRE a vše poběží stejně hladce tak na to zapomeň. Mimochodem v praxi se docela zkušení vývojáři vždycky nejsou nadšení z příchodu nové Javy, protože je nutno provádět zase úpravy v projektech. To samozřejmě platí i pro JavuEE. Všechno se to nakonec rozchodí ale bere to čas.

Nicméně musím přiznat, že drastická většina chyb bývá v nových funkcionalitách a 9tka jich obsahuje docela dost.
PS. a jestli se nudíš můžeš si vytvořit si projekt se např. Springem 1, převést do Springu2, pak do Springu 3tky a pak 4tky, to je lahůdka.. 8-) , nebo takto stejně provádět převody mezi verzemi hibernate, GWT, Wicketu či i mezi různými technologiemi v EE .

Doufám, že jsem ti to objasnil a že už mě nebudeš obtěžovat naivními dotazy.

 
Nahoru Odpovědět
11.10.2017 16:22
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 11 zpráv z 11.