[ djura1 @ 11.11.2003. 09:40 ] @
Zdravo svima.

Totalni sam pocetnik u Javi i imam jedno (mozda) glupo pitanje:
recimo da imam fajl nekiprog.java. KOmpajliram ga sa "javac nekiprog.java", a izvrsavam ga sa "java nekiprog".

E sad, ako hocu da pri izvrsavanju dam i neke argumente, kako to radim?
Probao sam "java nekiprog(argument)", "java nekiprog argument", ali ne moze.

Hvala unapred.
[ filmil @ 11.11.2003. 09:55 ] @
Argumenti se zadaju u produžetku komandne linije (druga varijanta koju si naveo), ali se ne navodi ime programa već ime klase koju želiš da izvršiš. Tako ako si napisao program MojProgram.java koji sadrži klasu MojProgram, pokrećeš sa:

java MojProgram arg1 arg2 arg3

i ne zaboravi da main metoda mora da bude deklarisana kao

public static void main(String[] args)

...

(tj. verovatno ne mora da bude void i sl, ali sam primetio da ako je lista argumenata prazna da java ne prepozna ime)
[ djura1 @ 11.11.2003. 11:03 ] @
Citat:
rgumenti se zadaju u produžetku komandne linije (druga varijanta koju si naveo), ali se ne navodi ime programa već ime klase koju želiš da izvršiš. Tako ako si napisao program MojProgram.java koji sadrži klasu MojProgram, pokrećeš sa:

java MojProgram arg1 arg2 arg3


OK, probao sam i sljaka. Ali nesto me buni u tvom odgovoru. Koliko sam do sad ukapirao, .java fajl mora da ima isto ime kao i public klasa definisana u tom fajlu.

Da li je moguce da se u jednom .java fajlu definise vise public klasa? Da li je moguce navoditi argumente za te druge klase?

Na primer, ako imam fajl MojProgram.java, i njemu klase MojProgram i MojProgram1,
da li je moguce napisati

java MojProgram1 arg1 arg2

a da se izvrsi main funkcija iz klase MojProgram?
[ tweeester @ 11.11.2003. 11:21 ] @
U jednom java fajlu moze biti samo jedna public klasa (time ostala pitanja gube smisao)
[ Gojko Vujovic @ 11.11.2003. 11:53 ] @
Mislim da main ipak mora da bude void.. tj. ta standardna deklaracija (public static void main) je cela obavezna.
[ Java Beograd @ 12.11.2003. 08:54 ] @
Mora da bude:

Code:
public static void main(String[] arg)


Tako i nikako drugačije, naravno osim imena promenljive arg.

Ono što je bitno napomenuti je da arg[0] nije ime programa kao u C-u.
Doduše i projam "program" ne postoji u Javi ...

Mala digresija: u C# može nekoliko stvari:
1. Ime funkcije može da bude i
Code:
public static void Main(String[] arg)

(dakle, početno slovo je veliko)

2. Može da bude bez parametara
Code:
public static void main()


3. Mislim da ne mora da bude void
[ Gojko Vujovic @ 12.11.2003. 13:52 ] @
Eee pa nisi u pravu ne mora samo tako da bude, može i ovako:

Code:

public static void main(String arg[])


Nisam menjao ime promenljive arg.
[ Java Beograd @ 13.11.2003. 09:58 ] @
Citat:
Gojko Vujovic:
Eee pa nisi u pravu ne mora samo tako da bude, može i ovako:

Code:

public static void main(String arg[])


Nisam menjao ime promenljive arg.



Jes, vala u pravu si.
Ja sam još u samom početku batalio takav način deklarisanja promenljivih. Mislim da je nekonzistentan (ružne li reči), zbunjujuć i neopravdano omogućen. Mislim da u C# to nije dozvoljeno.
Pozdrav.
[ MAD-MAX @ 13.11.2003. 22:05 ] @
U C#-u metod "Main" MORA da se pise velikim slovom 'M' znaci pise se.
Code:


static void Main(string[] args)



Nego meni nije jasno sta ti se ne svidja kod deklarisanja promenljivih?
[ Java Beograd @ 14.11.2003. 09:29 ] @
Izgleda da si se meni obratio.

Kazem, ne svidja mi se ( na primer ) :
Code:
 String names[]


mislim da je mnogo lepse (smem li reci pravilnije ? ):
Code:
 String[] names


Zato sto se kod definisanja tipa daje do znanja da je to array.
I kao sto rekoh ne vidim nikakav razlog zasto su u Javi dozvoljena sva tri oblika:

Code:
 
String[] names
String names[]
String[] names[]


A ono ok C# sam pricao malo napamet, po secanju. (priznajem)
Mora da bude Main, dakle veliko slovo, ali ne mora da ima parametre, i ne mora da bude void.
[ MAD-MAX @ 14.11.2003. 20:59 ] @
Hm zanimljivo! Naime tebi sam se obratio jer sam mislio da mislis bas obrnuto :). Odnosno meni se bas

Code:


String[] neki_niz;



ne svidja vec mi je ovo nekako logicnije.

Code:


String neki_niz[];



U svakom slucaju ovo sve nije bitno :) ali sam samo hteo da razjasnim sta sam mislio :)
[ djura1 @ 17.11.2003. 07:22 ] @
Nisam znao da ce moje pitanje izazvati takvu polemiku. Hvala svima na pomoci.