Překlad programu v Javě

Od: Datum: 25.05.12 22:16 odpovědí: 16 změna: 29.05.12 21:35

Ahoj. Začal jsem se učit základy javy a narazil jsem na problém už při klasickém "Hello, world".. Nainstaloval jsem J2SDK jak podle instrukcí, ale poté nastává poněkud zmatená část kde se píše že "je nutné mít v cestě podadresář /bin". Tento adresář jsem našel v program files v instalaci SDK, ale moc jsem nepochopil co přesně s ním mám dělat.. Zkoušel jsem dát do něj onen .java soubor, zkoušel jsem ho překopírovat z té složky jinam a potom tam ten soubor dát.. A poté vždy podle knížky do CMD "javac HelloWorld.java".. Pokaždé dostanu hlášku, že "javac nebyl rozpoznán jako příkaz, spustitelný program nebo dávkový soubor".

Poradil by mi prosím někdo jak na to?


avatar
Upozornění
Tato otázka je 5 let bez odpovědi a proto byla uzavřena.
Máte-li podobnou otázku, a nenašli jste vhodnou odpověď, založte novou otázku.
Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Datum: 26.05.12 00:44
 
avatar

Ona "cesta" neboli systémová proměnná %path% je výčet složek, ze kterých se dají programy volat přímo svým jménem, nemusí se u nich uvádět plná cesta. Její obsah si v příkazovám řádku můžete vypsat, echo %path% .

Ona by vám ta kompilace fungovala, kdybyste místo javac napsal celé "c:program filesjava...javac soubor.java", ale to je trochu nepraktické, sice byste se mohl do dané složky přepnout, ale pak byste zas musel zadávat plné cesty ke zdrojákům. Takže nejlíp tam tu cestu přidat: winkey+pause, vlevo Pokročilé, dole Proměnné prostředí, vybrat Path, Upravit, na konec připsat středník a za něj cestu k javac (běžně s mezerama, ne v uvozovkách).

Nebo druhá možnost, vytvořit si ve složce s projektem nějaký bat soubor na způsob makefilu, do něj zadat potřebné příkazy i s přepínači a se vším a překládat to spuštěním toho batu.

Ohodnoceno: 2x
 
Datum: 26.05.12 10:57
 

Tak už mi to alespoň najde javac, ale tvrdí mi to, že nemůže najít daný soubor... Soubor .java jsem dal do té složky bin, která už je tedy přidaná v %path% ale tvrdí mi to, že soubor nebyl nalezen.. Překlep tam nikde nebyl, a když jsem zkusil ten název souboru za javac napsat bez té koncovky .java tak mi to píše "error: Class names, 'HelloWorld', are only accepted if annotation processing is explicitly requested. 1 error."

Datum: 26.05.12 12:21
 
avatar

Do bin to už nedávejte, cestu jste nastavil proto, abyste javac mohl volat kdykoli odkudkoli. Zdroják si dáte do svý složky s projektem, vlezete do ní v příkazovém řádku a rovnou tam zadáte javac (přes cestu ho to najde) a váš zdroják, který je přímo v té složce. Ten napište včetně přípony .java, tahle chyba je kvůli tomu, že tam tu příponu nemáte uvedenou.

Ohodnoceno: 2x
 
Datum: 26.05.12 14:06
 

funguje to, díky moc :)

doplněno 26.05.12 14:59:

Aha, tak jsem narazil na další problém.. Když jsem chtěl program spustit pomocí příkazu "java" v cmd tak mi to hlásí "Could not find or load main class umístení souboru".. Při překladu jsem zadával "javac C:skriptyHelloWorld.java". Nyní jsem dal "java C:skriptyHelloWorld" a hlásí mi to tento error..

Datum: 29.05.12 15:00
 

nevíte prosím i co s tím spuštěním? viz doplnění z 26.5.

Datum: 29.05.12 18:56
 
avatar

Vstupním místem programu je metoda zvaná main. Pro spuštění zadáte java a název třídy, ve které ta metoda je. Musí se jmenovat main a musí být statická.

 
Datum: 29.05.12 19:08
 

main se jmenuje, statiská je.. "public static void main ( String arg[] )"

ale když zadám cestu do složky kde jsou jak .java tak .class uložené, hlásí to výše zmíněnou chybu.. zadávám "java C:skriptyHelloWorld" .. při překladu to samé, akorát místo java byl javac a na konci ještě koncovka .java, tu nyní nedávám.. Ale příkazový řádek mi pořád hlásí chybu..

Datum: 29.05.12 19:20
 
avatar

Tak se podělte o zdroják :) (sourcepod.com třeba)

 
Datum: 29.05.12 19:26
 

ten zdroják je tak krátký, že ho klidně hodím sem :)

class HelloWorld {
public static void main ( String arg[] )
{
System.out.println("Hello, world!");
}
}
Je to kód opsaný z učebnice hned z první kapitoly, tak by snad nemusel být špatně :D
Datum: 29.05.12 19:31
 
avatar

Nemám tu sdk a na online compileru jsem ve frontě už od doby, co jste poslal minulou odpověď..

Jestli nekecám, tak by mělo být parametrem pole stringů s nějakým názvem, tedy String[] args. Docela bych si myslel, že tohle by ani nemuselo jít zkompilovat :)

 
Datum: 29.05.12 19:39
 

tak jsem upravil soubor .java, zkusil znovu zkompilovat a už nejde ani to :D cmd sice nenahlásí žádnou chybu, ale ve složce se žádný .class neobjeví (.java soubor jsem před kompilací přejmenoval, takže k přepsání původního .class nedošlo)

Datum: 29.05.12 19:55
 
avatar

Ještě jedna věc, když koukám na to, jak to spouštíte: musíte být ve složce s tím souborem a uvést jen jeho název, takhle s plnou cestou to nejde (nebo asi jde, ale musí se někde.. něco..).

Ohodnoceno: 2x
 

 

Datum: 29.05.12 20:05
 

teď asi malinko nechápu Jak to myslíte, "být v té složce"?

Datum: 29.05.12 20:36
 
avatar

V příkazovém řádku/konzole se do ní přepnout.

 
Datum: 29.05.12 20:54
 

A toho docílím jak? :)

Datum: 29.05.12 21:35
 

Tak už to funguje :) Po přepnutí do složky a zadání pouhého "java HelloWorld" se program opravdu spustí

Mockrát díky! *palec*

 

 

 

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.