webForumDet fria alternativet

NoClassDefFoundError

10 svar · 366 visningar · startad av NoMaster

NoMasterMedlem sedan sep. 2002118 inlägg
#1

Jag kan kompilera i eclipse-editorn, men när jag försöker köra via kommandoraden står det

Exeption in thread "main" java.lang.NoClassDefFoundError: C:\HelloWorld

Jag har angett sökvägen till bin-mappen i miljövariabler Path (;C:\j2sdk1.4.1_03\bin) till mappen där javac och java.exe finns..

PeWMedlem sedan juni 20006 839 inlägg
#2

Att du satt sökvägen till kompilatorn verkar ju stämma eftersom du får ett svar från kompilatorn ;)

Har du satt classpath till mappen med dina filer?

NoMasterMedlem sedan sep. 2002118 inlägg
#3

Haha, ja det har du ju rätt i, dessutom går det att kompilera märkte jag nu.(får i alla fall inget felmess då) Vad som inte går är att köra filen via kommandoraden(java HelloWorld). Kan du förklara hur jag gör det där med classpath, för det har jag inte gjort? :)

SPiNMedlem sedan mars 20005 832 inlägg
#4

Se till att du har stavat klassen med main-metoden likadant som du har stavat filnamnet. Man brukar få NoClassDefFound-messet då.

PeWMedlem sedan juni 20006 839 inlägg
#5

Nu var det ett tag sedan jag körde ett javaprogg på det sättet, men har för mig att du helt enkelt skriver "set classpath = ." i den katalog filerna ligger. ( Kanske bara var "set path = .") ... Någon som vet med färskare minne kanske kan rätta mig... :)

Testa, om inte annat.

SPiNMedlem sedan mars 20005 832 inlägg
#6

Nä, ska man ändra classpathen:

set CLASSPATH=%CLASSPATH%;.

Ska man bara lägga till för kompileringen/körningen:

$ javac -c%CLASSPATH%;. MinKlass.java
---
$ java -c%CLASSPATH;. MinKlass
NoMasterMedlem sedan sep. 2002118 inlägg
#7

Eftersom jag just börjat glutta på java känns det lite enklare med dom första stegen att kompilera via tolken.

Koden i HelloWorld.java:

public class HelloWorld {
	public static void main (String[] arg) {
		System.out.println("Det funkar");
	}
}

Som jag kompilerar med raden:

javac H:\_JAVA\HelloWorld\HelloWorld.java

funkar

men..

java H:\_JAVA\HelloWorld\HelloWorld

funkar däremot inte..då får jag felmesset.

Kör W2k, och läste mig till att man skulle lägga till "ny" systemvariabel under "miljövariabler" och skriva in "CLASSPATH" och där lägga in

.;c:\filer

som sträng. Men vad är det för filer man ska länka till?

NoMasterMedlem sedan sep. 2002118 inlägg
#8

SPiN, verkar inte funka, men jag gör säkert fel:/

NoMasterMedlem sedan sep. 2002118 inlägg
#9

Nu funkar det, stod i fel mapp :r

PeWMedlem sedan juni 20006 839 inlägg
#10

Men vad är det för filer man ska länka till?

:i
Dina körbara filer som du vill köra.
Det var det som mitt förslag gör. Dvs om man lokalt sätter classpath till "." i den mappen man har sina ***.class som man vill köra. Det jag är osäker på är den exakta syntaxen som ska till.

red:
Bra att det fungerar nu :)

NoMasterMedlem sedan sep. 2002118 inlägg
#11

Ok, tackar, nu kan jag i alla fall kompilera och köra helloworld, men jag tänkte prova att köra en .bat-variant när jag ändå håller på..
Återkommer med frågor om det.

Genererad på 392 ms · cache AV · v20260730165559-full.f96bc7eb