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

JEdit "could not find the main class. program will exit"

[es] :: Java :: JEdit "could not find the main class. program will exit"

[ Pregleda: 4890 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ZakMMM
Bruxelles

Član broj: 91002
Poruke: 7
*.28.80.88.coditel.net.



Profil

icon JEdit "could not find the main class. program will exit"31.07.2006. u 12:34 - pre 216 meseci
Imam vrlo glup,iritirajuci pocetnicki problem koji ne mogu da resim.
Koristim JEdit za ucenje jave i uglavnom sve je funkcionisalo dobro dok nisam poceo da eksperimentisem sa paketima.
Konkretno:
-Imam dva foldera a1 i a2 na c:\
-U folderu a1 se nalazi public klasa A
-U folderu a2 se nalazi public klasa B koja je zapravo podklasa klase A
Obe klase se lepo kompajliraju, ali kada izvrsim klasu B prijavljuje mi gresku:

"could not find the main class. program will exit"
Iz ciste radoznalosti sam probao da izvrsim klasu A i isti slucaj je i sa njom.(Obe klase imaju main() metod);

Singl klase koje snimim na C:\ u sa java ekstenzijom kompajliraju se i izvrsavaju bez problema.

Pokusao sam da napravim i jedan JAR folder pod imenom paketi na c:\paketi.jar i u njega da ubacim ova dva paketa. U polju za classpath podesim c:\paketi.jar ali dobijam iste simptome sve lepo iskompajlira ali kada trebam da izvrsim neku klasu opet mi prijavljuje
"could not find the main class. program will exit".

Molim vas ako neko moze da mi pokaze kako da resim ovaj problem!!
 
Odgovor na temu

djalfirevic

Član broj: 76932
Poruke: 497
*.ADSL.neobee.net.



Profil

icon Re: JEdit "could not find the main class. program will exit"31.07.2006. u 13:46 - pre 216 meseci
Imas jednu javnu klasu A, i jednu klasu koja nasledjuje nju, recimo B...

Kakva je svrha ako te dve klase ti razdvojis u dva paketa???

One idu zajedno u jedan paket.

To moze, ali onda moras da uvezes onaj paket u kome se nalazi klasa A.
 
Odgovor na temu

ZakMMM
Bruxelles

Član broj: 91002
Poruke: 7
*.28.80.88.coditel.net.



Profil

icon Re: JEdit "could not find the main class. program will exit"01.08.2006. u 01:04 - pre 215 meseci
Kao sto rekoh , trenutno ucim javu, tako da nema neke velike svrhe u tome sto radim.
Klase sam podelio u dva paketa sa razlogom da ispitam ponasanje kompajlera i vidljivost clanova klase(polja i metoda) u odnosu na razlicite modifikatore pristupa, sto ce reci default i protected.
Znam da njihovu definiciju mogu naci u skoro svakom tutorijalu o javi ali jednostavno sam zeleo sam malo da eksperimentisem i da razjasnim sve nejasnoce.
Ali me je u tome sprecio gore pomenuti problem.(a kako ne znam o cemu se radi, ono me kopka i kopka i kopka i ako ga skoro ne resim, ne znam sta ce mi se desiti - ali ovo ne sluti na dobro:-{)

Inace, parent klasu sam uvezao i kompajler ne prijavljije nikakvu gresku, ali je problem kada hocu da ih izvrsim.

Izgleda da nesto ne razumem u vezi konfigurisanja JVM-a, ali ne znam sta.
Tako da jos jednom molim, ako neko ume da mi pomogne da to i ucini.

 
Odgovor na temu

bgd2500

Član broj: 55912
Poruke: 226
82.117.193.*



+7 Profil

icon Re: JEdit "could not find the main class. program will exit"01.08.2006. u 09:30 - pre 215 meseci
Klasa mora da ima main metod da bi bila izvrsna.
Daj primer da ne nabadamo.

Code:

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

hyle
Perica Milošević
Belgrade

Član broj: 30030
Poruke: 150
82.117.206.*

Sajt: www.linkedin.com/in/peric..


+4 Profil

icon Re: JEdit "could not find the main class. program will exit"01.08.2006. u 10:27 - pre 215 meseci
Idi na root c: diska i pokreni program sa:
Code:
java a1.A

ili sa
Code:
java a2.B


Moraš navesti i paket u kome ti se nalazi glavna klasa.

 
Odgovor na temu

ZakMMM
Bruxelles

Član broj: 91002
Poruke: 7
*.28.80.88.coditel.net.



Profil

icon Re: JEdit "could not find the main class. program will exit"01.08.2006. u 11:18 - pre 215 meseci
Ljudi hvala vam na pokusaju da mi pomognete, ali izgleda da sam pronasao uzrok problema, ali u isto vreme su mi se pojavile i nove nejasnoce.
Evo primera mojih klasa:
-Klasa A nalazi se u folderu c:\a1
Code:

package a1 ;

public class A {
     public int javnoPolje;

     public static void main(String[] args) {
     }
     public String maliMetod() {
         return "a a a a a a a a ";
     }
 }


-Klasa B nalazi se u folderu c:\a2
Code:

package a2;
import a1.*;

public  class B extends A {
     public static void main(String[] args) {
         B x = new B();
         x.mojMaliMetod();
     }

     public void mojMaliMetod() {
         System.out.println("B kaze, " + this.maliMetod() + " " + javnoPolje);
         System.out.println("B kaze, " + maliMetod());
         A z = new A();
         System.out.println("A kaze, " + z.maliMetod() + " " + z.javnoPolje);
     }

     public String maliMetod() {
         return " b b b b b b b ";
     }
 }


Problem sam prevazisao na sledeci nacin:
Code:

C:\>javac a2\*.java

C:\>javac a1\*.java

C:\>java a2.B
B kaze,  b b b b b b b  0
B kaze,  b b b b b b b
A kaze, a a a a a a a a  0


Ali kada uradim ovako javlja mi se greska:
Code:

C:\>javac a2\*.java

C:\>javac a1\*.java

C:\>cd a2

C:\a2>java B
Exception in thread "main" java.lang.NoClassDefFoundError: B (wrong name: a2/B)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

A posto koristim NetRexxJe, JEdit plugin za kompajliranje i pokretanje klasa, koji za pokretanje klasa koristi naredbu javaw, na ekranu mi se pojavljuje sledece upozorenje




Isto upozorenje mi se javlja kada i ja u cmd-u upotrebim komandu:
Code:


C:\a2>javaw B.


E sada, za JEdit je ocigledno da moram pronaci pravi nacin da upotrebim odgovarajuce argumente prilikom kompajliranja i pokretanja, ali ono sto ne razumem je sta to JVM izgubi kada udjem u paket a2 i odatle direktnom komandom
C:\a2>java B
pokusam da pokrenem klasu B.

Zapravo u cemu je sustina, koju informaciju JVM poseduje ako pokretanje vrsim iz korenog direktorijuma(C:\>java a2.B) a istu izgubi ako udjem u folder a2( C:\a2>) ??????????

P.S.
Za nekog koga privuce ova tema evo i ukratkog objasnjenja javaw.exe programa:
The javaw.exe command is identical to java.exe, except that with javaw.exe there is no associated console window. This implies you can't get it to display the version with -version since there is no console to display it on. Use javaw.exe when you don't want a command prompt window to appear. The javaw.exe launcher will, however, display a dialog box with error information if a launch fails for some reason.

[Ovu poruku je menjao ZakMMM dana 01.08.2006. u 12:29 GMT+1]

[Ovu poruku je menjao ZakMMM dana 02.08.2006. u 10:06 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

djalfirevic

Član broj: 76932
Poruke: 497
*.ADSL.neobee.net.



Profil

icon Re: JEdit "could not find the main class. program will exit"02.08.2006. u 08:56 - pre 215 meseci
Zbunices i nas koji vec neko vreme programiramo u Javi.... 8-)

Hmmm...

Sledeci put kada budes postovao svoj kod, molim te koristi
Code:
tagove posto je daleko preglednije...

Kopirao sam tvoj program kod sebe i pokusao da ga izvrsim i javlja tu gresku koju i tebi javlja...

Problem sam resio na sledeci nacin...

Meni se paketi nalaze u sledecem direktorijumu: D:\Programiranje\Java\EliteSecurity\

Tu se nalaze direktorijumi ("paketi") a1 i a2...

Sve sto moras da uradis jeste da u CLASSPATH i u Path navedes putanju do paketa a1:

.;..;D:\Programiranje\Java\EliteSecurity\;

Nakon toga mi je program radio bez greske.


 
Odgovor na temu

hyle
Perica Milošević
Belgrade

Član broj: 30030
Poruke: 150
82.117.206.*

Sajt: www.linkedin.com/in/peric..


+4 Profil

icon Re: JEdit "could not find the main class. program will exit"02.08.2006. u 10:38 - pre 215 meseci
Citat:
ZakMMM:

...ono sto ne razumem je sta to JVM izgubi kada udjem u paket a2 i odatle direktnom komandom
C:\a2>java B
pokusam da pokrenem klasu B.

Zapravo u cemu je sustina, koju informaciju JVM poseduje ako pokretanje vrsim iz korenog direktorijuma(C:\>java a2.B) a istu izgubi ako udjem u folder a2( C:\a2>) ??????????

Nije dovoljno da navedeš samo naziv klase, obavezno je navođenje i paketa u kome se ta klasa nalazi kako bi Java mogla da je pronađe. Ako imaš neki veliki projekat lako može da se desi da postoji više klasa koje imaju isto ime, samo se nalaze u različitim paketima, tako da Java ne može da zna na koju klasu misliš ako ne navedeš paket.


Na početku svake klase navodiš kome paketu pripada. U tvom slučaju naveo si da se klasa B nalazi u paketu a2 i tako kompajlirao.
Java gleda classpath i traži klase u svakom od direktorijuma koji su navedeni u classpath-u. Ako si u classpath-u naveo direktorijum "c:\klase" onda će Java uzeti u obzir sve klase i pakete koji se nalaze u tom direktorijumu. Da bi Java pronašla klasu B, ona se mora nalaziti na lokaciji "c:\klase\a2"

Da si kojim slučajem u classpath stavio "c:\klase\a2" umesto "c:\klase" onda bi Java pronašla klasu B ali bi ti prijavila grešku "(wrong name: a2/B)" zato što je prilikom kompajliranja navedeno da se klasa B nalazi u paketu a2, a Java je pronašla tu klasu u default paketu (bez paketa). Java je očekivala da se klasa B nalazi na lokaciji "c:\klase\a2\a2" zbog toga što je lokacija "c:\klase\a2" navedena kao početna i potraga za paketima počinje od te lokacije.

Kod tebe nastaju problemi iz sledećeg razloga. U okviru classpath-a si naveo direktorijum "."
Tačka označava trenutni direktorijum i to znači da Java treba da traži klase u onom direktorijumu odakle si je pozvao. Ako ti je pokrenut command prompt i nalaziš se na "c:\" onda će prilikom pokretanja Java tražiti sve pakete na lokaciji "c:\". Ako se nalaziš na lokaciji "c:\a2" i pokrećeš Javu onda će ona tražiti sve pakete koji se nalaze na toj lokaciji. Znači uvek se direktorijum u kome se nalaziš uzima kao polazni za traženje klasa i paketa. U trenutku kada odeš u direktorijum "c:\a2" i pozoveš "java B" dolazi do problema zbog toga što u klasi B piše da se nalazi u paketu a2, a Java je pronašla u default paketu.


Ne znam da li sam uspeo da ti objasnim, stvar je prosta ali je meni teško da je sročim u par redova.

Nadam se da sam bio od pomoći, pozdrav!
 
Odgovor na temu

ZakMMM
Bruxelles

Član broj: 91002
Poruke: 7
*.28.80.88.coditel.net.



Profil

icon Re: JEdit "could not find the main class. program will exit"02.08.2006. u 10:47 - pre 215 meseci
Djuro, hvala ti na odgovoru, ali da li bi mogao na konkretnom primeru da mi pokazes kako da uradim sledece:

"...u CLASSPATH i u Path navedes putanju do paketa a1..."

da li si mislio da upotrebim argument -classpath npr:
Code:
java -classpath .;..;D:\Programiranje\Java\EliteSecurity\; B

ili nesto drugo

P.S
Hvala na sugestiji za tagove, zaista izgleda bolje
 
Odgovor na temu

ZakMMM
Bruxelles

Član broj: 91002
Poruke: 7
*.28.80.88.coditel.net.



Profil

icon Re: JEdit "could not find the main class. program will exit"02.08.2006. u 10:54 - pre 215 meseci
Hyle, ovo je bio jedan zaista iscrpan odgovor, veliko hvala.
 
Odgovor na temu

djalfirevic

Član broj: 76932
Poruke: 497
*.ADSL.neobee.net.



Profil

icon Re: JEdit "could not find the main class. program will exit"02.08.2006. u 11:10 - pre 215 meseci
Citat:
ZakMMM: Djuro, hvala ti na odgovoru, ali da li bi mogao na konkretnom primeru da mi pokazes kako da uradim sledece:

"...u CLASSPATH i u Path navedes putanju do paketa a1..."

da li si mislio da upotrebim argument -classpath npr:
Code:
java -classpath .;..;D:\Programiranje\Java\EliteSecurity\; B

ili nesto drugo

P.S
Hvala na sugestiji za tagove, zaista izgleda bolje


Ako koristis Windows 2000, kliknes desni klik na My Computer, pa Properties, pa kartica Advanced, pa Environment Variables.
Zatim u prozoru System Variables, odes na Path i dodas putanju gde ti se nalaze paketi. Naravno putanju dodajes na kraj, nemoj da obrises ono sto vec postoji tamo. I takodje to isto uradis i u CLASSPATH-u. Naravno, njega si vec kreirao, jer si u njega smestio jre/lib/ext i JAVA_HOME/jdk/bin/ putanje.

Nadam se da sam ti pomogao.
 
Odgovor na temu

ZakMMM
Bruxelles

Član broj: 91002
Poruke: 7
*.28.80.88.coditel.net.



Profil

icon Re: JEdit "could not find the main class. program will exit"02.08.2006. u 23:48 - pre 215 meseci
Djuro i Perice, veliko vam hvala, ovoga puta obojica ste bili "divni" (naravno da prepoznajete citat iz "Mi nismo andjeli", i verujem da se Djuri smucilo to da slusa, ali sta da radim kad je to jednostavno jace od mene, a i Djuro sta da radis kada te je zapalo to "prokletstvo" - mada, cuti dobro je, moglo i nesto gore, obzirom da svako ima neko u zivotu).

Zaista bili ste mi od velike pomoci. Obzirom da se spremam za SCJP, mislim da je najbolje da sve "decje boginje" na vreme istrebim, ovoga puta sam uspeo zahvaljujuci vama.

Za u buduce nadam se da mogu jos racunati na vas i ovaj forum.(Barem dok ne stanem na solidne noge sa znanjem, a kasnije cu i ja (poput vas - mojih heroja 8-),pomagati jadnim i izgubljenim dusama JAVA-sveta, kao sto sam i sàm danas).

Thanks!!!
 
Odgovor na temu

djalfirevic

Član broj: 76932
Poruke: 497
*.vdial.verat.net.



Profil

icon Re: JEdit "could not find the main class. program will exit"10.08.2006. u 17:02 - pre 215 meseci
Citat:
ZakMMM: Djuro i Perice, veliko vam hvala, ovoga puta obojica ste bili "divni" (naravno da prepoznajete citat iz "Mi nismo andjeli", i verujem da se Djuri smucilo to da slusa, ali sta da radim kad je to jednostavno jace od mene, a i Djuro sta da radis kada te je zapalo to "prokletstvo" - mada, cuti dobro je, moglo i nesto gore, obzirom da svako ima neko u zivotu).

Zaista bili ste mi od velike pomoci. Obzirom da se spremam za SCJP, mislim da je najbolje da sve "decje boginje" na vreme istrebim, ovoga puta sam uspeo zahvaljujuci vama.

Za u buduce nadam se da mogu jos racunati na vas i ovaj forum.(Barem dok ne stanem na solidne noge sa znanjem, a kasnije cu i ja (poput vas - mojih heroja 8-),pomagati jadnim i izgubljenim dusama JAVA-sveta, kao sto sam i sàm danas).

Thanks!!!


8-). Uvek mozes racunati na mene, a naravno i na "elitnu bezbednost"...

Pozz
 
Odgovor na temu

[es] :: Java :: JEdit "could not find the main class. program will exit"

[ Pregleda: 4890 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

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