webForumDet fria alternativet
Logga in / Bli medlem

NoClassDefFoundError

Java

10 svar · 366 visningar · startad av NoMaster

Medlem sedan sep. 2002106 inlägg
Frågan#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..

Medlem sedan juni 200010 432 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?

Medlem sedan sep. 2002106 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? :)

Medlem sedan mars 20007 896 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å.

Medlem sedan juni 200010 432 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.

Medlem sedan mars 20007 896 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
Medlem sedan sep. 2002106 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?

Medlem sedan sep. 2002106 inlägg
#8

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

Medlem sedan sep. 2002106 inlägg
#9

Nu funkar det, stod i fel mapp :r

Medlem sedan juni 200010 432 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 :)

Medlem sedan sep. 2002106 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.

267 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)