webForumDet fria alternativet

Hur ska jag göra för att starta programmet med jar?

Javaur Java

7 svar · 1 006 visningar · startad av San

SanMedlem sedan juni 20072 inlägg
#1

Jag har gjort ett program i Eclipse och har försökt exportera det till en jar-fil.

Programmet fungerar utmärkt i eclipse men dubbelklickar jag på den exporterade jar-filen får jag felmeddelandet "Could not find main class. Program will exit."

Försöker jag köra jar-filen från commandoprompten får jag istället felmeddelandet

Exception in thread "main" java.lang.NoClassDefFoundError: windowtabs/TabWindow

Vad kan vara felet?

Jag är jättetacksam för alla idéer.

zoloMedlem sedan juni 20076 inlägg
#2

Manifest

Du måste i, META-INF/MANIFEST.MF, skapa en rad enligt

Main-Class: <package>.<MyClass>
CompusaMedlem sedan jan. 20023 327 inlägg
#3

I export-guiden i Eclipse finns det ett alternativ där du kan välja main-filen för ditt projekt/jar. Leta efter det alternativet.

SanMedlem sedan juni 20072 inlägg
#4

har mainklassen i manifestfilen

Jättetack för hjälpen, men jag har redan nedanstående i min manifest-fil:

Manifest-Version: 1.0
Main-Class: sc.Sc

(sc = paket Sc= mainklassen)

Trots detta fungerar det alltså inte, vad kan det vara för fel då?

zoloMedlem sedan juni 20076 inlägg
#5

Fler beroenden

Exception in thread "main" java.lang.NoClassDefFoundError: windowtabs/TabWindow

Tyder på att du använder något annat paket, förutom ditt mainprogram. Du måste se till att classpathen är satt när du kör din java. Istället för att dubbelklicka föreslår jag att du från ett kommandofönster kör ungefär följande:

java -classpath [I]jar1[/I].jar;[I]jar2[/I].jar[;...] -jar MinJarFil.jar

Du får mixtra med classpathen och se vilka beroenden du har. Inifrån Eclipse ser du vilken classpath som används, från (bland annat) projektets propertysida.

swedeMedlem sedan feb. 2004230 inlägg
#6

Jag hijackar den här gamla tråden då jag har samma problem!
Mitt nygjorda java program (.jar) vägrar köra :(

$ java -jar StockLoader.jar
Ouch : java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Nu har jag till och med varit så väluppfostrad så jag har inkluderat mysql drivern i min .jar fil.
Men hur får jag java att förstå det?

Ska väl även tillägga att jag har försökt att sätta CLASSPATH och peka den till en lös mysql-driver.jar utan någon skillnad

GeinMedlem sedan sep. 20005 700 inlägg
#7

zolo skrev:

Tyder på att du använder något annat paket, förutom ditt mainprogram. Du måste se till att classpathen är satt när du kör din java. Istället för att dubbelklicka föreslår jag att du från ett kommandofönster kör ungefär följande:

java -classpath [I]jar1[/I].jar;[I]jar2[/I].jar[;...] -jar MinJarFil.jar

Du får mixtra med classpathen och se vilka beroenden du har. Inifrån Eclipse ser du vilken classpath som används, från (bland annat) projektets propertysida.

Nu va ju det här rätt länge sedan men för framtidens skull så vill jag säga att detta är helt fel.
Om java anropas med -jar flaggan så ignoreras -classpath fullständigt.

swede skrev:

Jag hijackar den här gamla tråden då jag har samma problem!
Mitt nygjorda java program (.jar) vägrar köra :(

$ java -jar StockLoader.jar
Ouch : java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Nu har jag till och med varit så väluppfostrad så jag har inkluderat mysql drivern i min .jar fil.
Men hur får jag java att förstå det?

Ska väl även tillägga att jag har försökt att sätta CLASSPATH och peka den till en lös mysql-driver.jar utan någon skillnad

Som sagt, även miljövariabeln CLASSPATH ignoreras om du startar ditt program med -jar. Det du får göra är att lägga in Class-Path: sökväg/till/drivern.jar i ditt manifest. T.ex. Class-Path: lib/mysql-jdbc.jar

swedeMedlem sedan feb. 2004230 inlägg
#8

Tack!
Nu fungerar det

131 ms totalt · 3 externa anrop · v20260731065814-full.b2af184d
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)