Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem u startu

[es] :: Java :: Problem u startu

[ Pregleda: 3464 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

NikolaVeber
NikolaVeber
neradnik na porodiljskom bolovanju
Karlsruhe

Član broj: 5115
Poruke: 1254
*.ptt.yu

Jabber: nikolaveber@jabber.org
ICQ: 121532865


Profil

icon Problem u startu23.12.2003. u 13:36 - pre 227 meseci
Pozdrav !

Krenuo sam sa primerima iz knjige Java2 od Zukowskog. I zaglavio vec na prvom :(
Mislio sam da je greska u kucanj... ali sam onda kopirao source sa cd-a koji ide uz knjigu, i isto.
Code:

public class HelloWorld{
    public static void main(String argumenti[]){
        System.out.println("Hello, World");
    }
}

Kod koji je verovatno mnogima poznat :). Javac prodje bez problema i ne prijavljuje gresku, ali kada dam: java HelloWorld dobijem sledecu gresku :
Exception in thread "main" java.lang.NoClassDefFoundError: C:\java\HelloWorld

Pomagajte !
Instaliran je j2sdk1.4.0 na winXP.


Pop Servis "Paradise Tours"
Java User Group Karlsruhe
IT Dan - Srbija

Officer, I saw the driver who hit me - his name was Johnny Walker.
 
Odgovor na temu

tweeester
Ivan Arandjelovic
bg yu

Član broj: 724
Poruke: 882
*.kc.vicert.com

Sajt: www.javasvet.net


Profil

icon Re: Problem u startu23.12.2003. u 14:00 - pre 227 meseci
Problem je prost, java ne zna gde da nadje tvoju klasu (HelloWorld.class fajl). Ja znam (tj. pretpostavljam) da ti se nalazi u tekucem direktorijumu odakle pokreces program ali java to ne zna :) Problem resi ovako:
c> set CLASSPATH=%CLASSPATH%;.\

tj. dodaj tekuci direktorijum u environment veriablu pod imenom CLASSPATH. Ova variabla odredjuje gde se traze klase. Pazi da kad imas klasu u nekom paketu, naprimer com.test.ImeKlase onda taj class fajl mora da se nalazi u nekom direktorujumu kao naprimer:
C:\classes\com\test
a u CLASSPATH moras da dodas samo osnovni dir, tj samo:

C:> set CLASSPATH=%CLASSPATH%;c:\classes

Hope this helps,
Pozdrav

p.s. Obrati paznju da setovanje CLASSPATH-a vazi samo za DOS prozor u kome trenutno radis, u drugim prozorima to nece biti vidljivo.
<< tko leti vrijedi, tko ne leti ne vrijedi >>
 
Odgovor na temu

mucky
Aleksandar Mastilović
Freelancer
Novi Sad - Srbija

Član broj: 237
Poruke: 412
*.22.EUnet.yu



+1 Profil

icon Re: Problem u startu24.12.2003. u 16:02 - pre 227 meseci
Citat:
NikolaVeber:
Code:

public class HelloWorld{
    public static void main(String argumenti[]){
        System.out.println("Hello, World");
    }
}

Kod koji je verovatno mnogima poznat :). Javac prodje bez problema i ne prijavljuje gresku, ali kada dam: java HelloWorld dobijem sledecu gresku :
Exception in thread "main" java.lang.NoClassDefFoundError: C:\java\HelloWorld

Pomagajte !
Instaliran je j2sdk1.4.0 na winXP.



Treba da pise
Code:

public static void main(String[] argumenti){
}


a ne

Code:

public static void main(String argumenti[]){
}
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.InfoSky.Net

Sajt: localhost


+4 Profil

icon Re: Problem u startu24.12.2003. u 16:24 - pre 227 meseci
prvo i drugo su potpuno ekvivalentni u javi, samo se preporučuje prvo, jer je valjda čitljivije...
 
Odgovor na temu

NikolaVeber
NikolaVeber
neradnik na porodiljskom bolovanju
Karlsruhe

Član broj: 5115
Poruke: 1254
*.ptt.yu

Jabber: nikolaveber@jabber.org
ICQ: 121532865


Profil

icon Re: Problem u startu25.12.2003. u 14:03 - pre 226 meseci
Hvala inace, to je source iz knjige... pozdrav autorima

Inace, da li to definise promenljivu tipa String[] sa imenom "argumenti", ili je nesto drugo u pitanju ?
Pop Servis "Paradise Tours"
Java User Group Karlsruhe
IT Dan - Srbija

Officer, I saw the driver who hit me - his name was Johnny Walker.
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+164 Profil

icon Re: Problem u startu25.12.2003. u 14:57 - pre 226 meseci
String[] arg i String arg[] rade istu stvar. Kreiraju niz objekata tipa String pod imenom arg. Sasvim je svejedno koju ćeš sintaksu koristiti, barem što se kompajliranja tiče. mucky, malo si pogrešio.
 
Odgovor na temu

veljaradenkovic
Velja Radenkovic
Beograd

Član broj: 2977
Poruke: 281
*.ppp-bg.sezampro.yu

ICQ: 147120023


Profil

icon Re: Problem u startu25.12.2003. u 15:26 - pre 226 meseci
Cisto da ispostujemo (java <=> memorija).

String[] arg i String arg[] ne kreiraju nista.

 
Odgovor na temu

mucky
Aleksandar Mastilović
Freelancer
Novi Sad - Srbija

Član broj: 237
Poruke: 412
*.27.EUnet.yu



+1 Profil

icon Re: Problem u startu25.12.2003. u 15:54 - pre 226 meseci
Evo sad sam probao i stvarno rade obe varijante :)

Svasta, 3 godine radim sa javom i nigde nisam sreo taj nacin deklarisanja niza :)

Problem je definitivno u CLASSPATH :)

I ajde da malo cepidlacimo

Citat:
Gojko Vujovic:
String[] arg i String arg[] rade istu stvar. Kreiraju niz objekata tipa String pod imenom arg.


Code:
String[] argumenti
(ili
Code:
String argumenti[]
kako volis:) ) NE kreira niz nego samo pokazivac na niz.
Code:
String[] argumenti = new String[50]
kreira novi niz od 50 stringova (od kojih svaki opet moras inicijalizovati bilo sa
Code:
new String("blah")
ili dodelom vec kreiranog objekta tipa String :)

Ovo sto je Gojko naveo radi samo ako tako deklarises niz u zaglavlju metoda.
 
Odgovor na temu

NikolaVeber
NikolaVeber
neradnik na porodiljskom bolovanju
Karlsruhe

Član broj: 5115
Poruke: 1254
*.ptt.yu

Jabber: nikolaveber@jabber.org
ICQ: 121532865


Profil

icon Re: Problem u startu25.12.2003. u 20:19 - pre 226 meseci
Znaci li to da String[] imeStringa zauzima mesto u stack memoriji za jedan pokazivac, a kasnije vrednost smesta u heap ?
Pop Servis "Paradise Tours"
Java User Group Karlsruhe
IT Dan - Srbija

Officer, I saw the driver who hit me - his name was Johnny Walker.
 
Odgovor na temu

overflow
Goran Milosavljević
Integration & Internet Senior
Engineer @ Telenor
Beograd

Član broj: 396
Poruke: 345
*.verat.net

ICQ: 106825659
Sajt: localhost


Profil

icon Re: Problem u startu28.12.2003. u 11:31 - pre 226 meseci
Tačno tako.
Tek se sa:
Code:

imeStringa  = new String("Test");

alocira mem. prostor (u heap-u) za String u koji se smesta konkretna vrednost - imeStringa kao referenca ostaje u stack-u do kraja izvrsenja metode.
Kao i u mnogim srodnim (novijim) jezicima "IV generacije", ispod haube su sve pointer-i (u java terminologiji: reference).
Sve sto je besmislenije, utoliko je bolje.
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+164 Profil

icon Re: Problem u startu28.12.2003. u 12:33 - pre 226 meseci
Ako ono ne inicijalizuje taj niz "argumenti" kao što vi kažete, kako onda odmah posle tog reda mogu da pristupim njegovim elementima ako je program pokrenut sa parametrima?

Hajde prvo to odgovorite da razjasnimo ovo do kraja, molim vas.

Ja sam govorio o upotrebi te sintakse u parametrima koji se prosleđuju main funkciji.
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+164 Profil

icon Re: Problem u startu28.12.2003. u 12:35 - pre 226 meseci
Citat:
mucky:
Ovo sto je Gojko naveo radi samo ako tako deklarises niz u zaglavlju metoda.


Ovaj red sam kasno video, pre nego što sam napisao prethodnu poruku, tako da je već odgovoreno na pitanje.. pričao sam o zaglavlju.
 
Odgovor na temu

veljaradenkovic
Velja Radenkovic
Beograd

Član broj: 2977
Poruke: 281
*.ptt.yu

ICQ: 147120023


Profil

icon Re: Problem u startu28.12.2003. u 20:12 - pre 226 meseci
Ako mislite da sporni izraz kreira bilo kakav niz na bilo kom mestu (pa i u main metodi)
onda niste u pravu.

Ako ne mislite onda izvinite na obrazlozenju koje sledi.
Code:

public class Proba {

    /**
     * 
     */
    public Proba() {
    
    }

    public static void main(String[] args) {
        /*deklaracija*/
        int[] nizOdTriBroja;
        /*inicijalizacija*/
        nizOdTriBroja=new int[]{1,2,3};
        new Proba().funkcija(nizOdTriBroja);
    }
    //
    //
    //
    private void funkcija(int[] brojevi){
        for(int i=0;i<=100;i++){
            System.out.println(brojevi[i]);
        }
    }
}


Ko sto vidite u gornjem primeru mozes da
se obratis stotom clanu niza i ako on ne postoji,.. i program se kompajlira;
ali krkne kad se pokrene.

Tako da to sto ti mozes da se obratis
parametru f-cije u njenom telu ne znaci da on postoji u trenutku kad
mu se ti obracas i to ne moze ni jedan kompajler da zna pre nego sto se
f-cija pozove a onda ako ga nema dodje do runtime Exceptiona.

Sto se tice procedure main zamisli da JVM radi ovako:

Code:

String parametar1="parametar1";//procita prvi parametar sa console
String parametar2="parametar2";//procita drugi parametar sa console
String parametarN="parametarN";//procita n-ti parametar sa console
String[] args=new String[]{parametar1,parametar2,parametarN};
main(args);




Osim toga ukucajte u google nesto kao Definitions vs. Declarations.
pa procitajte.

Ako ovo nije tacno ubicu Jaukovica sto me naucio pogresno.
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.beotel.net

Sajt: localhost


+4 Profil

icon Re: Problem u startu28.12.2003. u 21:58 - pre 226 meseci
daj ne brukajte se više raspravom o tome da li je deklaracija isto što i instanciranje...

naravno da nije. možda se neko loše odrazio, ali ne verujem da iko to ovde misli. zato dosta više..
 
Odgovor na temu

[es] :: Java :: Problem u startu

[ Pregleda: 3464 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.