Missa inte Amazon Prime Deal Days!
Permalänk
Medlem

[Java] main klasser

Jag har skapat en main metod i klassen Game.

public static void main(String[] args)
{
Game game = new Game();
game.play();
}

Problemet är att allt fungerar i *nix miljö när jag kör java Game men när jag vill starta programmet under windows så får jag följande felmeddelande:

Exception in thread "main" java.lang.NoClassDefFoundError: Game

Någon som vet hur man löser detta?

Visa signatur
Permalänk

Troligen är din classpath fel i Windows. Prova om detta hjälper:

java -cp . Game

Permalänk
Medlem

japp det stämmde. Går det att fixa det i programmet så att den hittar rätt path?

Hur fungerar det om man skapar en .jar fil av projektet?

Visa signatur
Permalänk
Medlem

Skapa en classpath environment-variabel eller lägg till om den redan finns.

Kör du en jar-fil med

java -jar prog.jar

så finns allt i jar-filen automatiskt i classpath, men du måste ställa in vilken klass som innehåller main-metoden när du skapar jar-filen för att kunna köra den. Alternativt kan du köra den som

java -cp prog.jar nåtpaket.Nånklass

och då explicit säga vilken klass som innehåller main-metoden. Med alt. 2 kan du även lägga till flera jar-filer till classpathen på en gång, om du av någon anledning inte vill paketera ditt program i en enda stor jar-fil (eller om ditt program använder nåt bibliotek du laddat ner någonstans).

Permalänk
Medlem
Citat:

Kör du en jar-fil med

java -jar prog.jar

så finns allt i jar-filen automatiskt i classpath, men du måste ställa in vilken klass som innehåller main-metoden när du skapar jar-filen för att kunna köra den.

Använder du Eclipse så kan du välja "Export as Jar" eller liknande. Med den guiden har du möjlighet att välja vilken main metod som ska köras.

Alternativt så skapar du din jar på följande vis:
http://csdl.ics.hawaii.edu/~johnson/613f99/modules/04/jar-fil...

Permalänk
Medlem

mm eclipse blir något mer aktuellt senare. Just nu är det utveckling i BlueJ som gäller. den har iofs ett exporteringsverktyg den med men ah det strulade lite.

Visa signatur
Permalänk
Medlem

Jag satt också med BlueJ en gång tiden, saknar den inte dock

Permalänk
Medlem

fel: dubbelpost