Avatar billede cybershah Nybegynder
27. februar 2005 - 21:12 Der er 38 kommentarer og
2 løsninger

problemer med Jar og manifest !

MIN JAR FIL KAN IKKE FINDE MAIN KLASSE!
"Could not find the main class. Program will exit."
Jeg har lavet en GUI i java, som jeg vil lave en jar fil for.
klassen hedder Math1GUI.class og er i Training pakken. Min main metode er også i Math1GUI klassen. jeg gør følgende:
1- lave en manifest fil i samme mappe (math.mf), hvor klassen ligger
Main-Class: Training.Math1GUI (har husket linieskift!)

2- skriver følgende i cmd:
jar cvfm run.jar math.mf Math1GUI.class

min jar fil bliver lavet, men jeg kan ikke køre programmet, da det ovennævnte problem kommer frem!
Avatar billede arne_v Ekspert
27. februar 2005 - 21:15 #1
Hvad viser:

jar tvf run.jar

?
Avatar billede _carsten Nybegynder
27. februar 2005 - 21:21 #2
Jeg ville sige at dette må være måden:    jar cvfm run.jar math.mf Training
Avatar billede cybershah Nybegynder
27. februar 2005 - 21:49 #3
arne_v >>
META-INF/
META-INF/MANIFEST.MF
MathGUI.class
Avatar billede cybershah Nybegynder
27. februar 2005 - 21:50 #4
carsten>> det hjælper ikke noget at skirve Training der.
Avatar billede arne_v Ekspert
27. februar 2005 - 21:50 #5
Det må skulle være:

META-INF/
META-INF/MANIFEST.MF
Training/MathGUI.class

(hvilket faktisk er det samme som Carsten siger !!)
Avatar billede cybershah Nybegynder
27. februar 2005 - 21:53 #6
jamen når jeg skriver jar cvfm run.jar math.mf Training så siger den: no such file or directory added manifest.
skal jeg måske ændre noget i manifest filen?
Avatar billede arne_v Ekspert
27. februar 2005 - 21:53 #7
Stil dig i roden og brug:

jar cvfm run.jar Training/math.mf Training/Math1GUI.class
Avatar billede cybershah Nybegynder
27. februar 2005 - 21:53 #8
jeg har ik helt forstand på det med META-INF! hvad er det lige helt præcist det er?
Avatar billede _carsten Nybegynder
27. februar 2005 - 21:54 #9
Dir  C:\XXX\YYY\Training

Fra cmd:

C:\XXX\YYY\>jar cvfm run.jar math.mf Training
Avatar billede cybershah Nybegynder
27. februar 2005 - 21:55 #10
altså fra cmd ik'? ellers er jeg ik helt med hva du mener med roden?
Avatar billede _carsten Nybegynder
27. februar 2005 - 21:55 #11
Og så selvfølgelig den rigtige sti til math.mf
Avatar billede arne_v Ekspert
27. februar 2005 - 21:55 #12
META-INF er bare information om det der er i jar filen
Avatar billede cybershah Nybegynder
27. februar 2005 - 21:56 #13
jamen jeg er i roden...
c:\documents and settings\eclipse workspace\oop2\training> jar cvfm run.jar math.mf Training
Avatar billede _carsten Nybegynder
27. februar 2005 - 21:56 #14
Sådan:    c:\documents and settings\eclipse workspace\oop2>jar cvfm run.jar math.mf Training
Avatar billede arne_v Ekspert
27. februar 2005 - 21:57 #15
DU skal stå i:
  c:\documents and settings\eclipse workspace\oop2
Avatar billede arne_v Ekspert
27. februar 2005 - 21:57 #16
Og hvis du bruger Eclipse - hvorfor laver du så ikke jar filen inde i Eclipse ?
Avatar billede cybershah Nybegynder
27. februar 2005 - 22:02 #17
jeg er nybegynder i eclipse. havde godt nok hørt at den kunne lave jar filer, men har ik kigget nærmere på det.
når jeg dobbeltklikker på run.jar sker der ik noget! jeg har gjort det i sagde..
Avatar billede _carsten Nybegynder
27. februar 2005 - 22:03 #18
Du skal bakke ET dir

til du står i oop2

her kører du kommandoen
Avatar billede arne_v Ekspert
27. februar 2005 - 22:03 #19
Giver jar tvf det som jeg viste 21:50:48 ?
Avatar billede cybershah Nybegynder
27. februar 2005 - 22:04 #20
arne_v ja det gør det nu.
Avatar billede _carsten Nybegynder
27. februar 2005 - 22:05 #21
Så må det være et spørgsmål om STORT/lille 'T' i dir  Training/training
Avatar billede arne_v Ekspert
27. februar 2005 - 22:09 #22
I Eclipse højreklikker du på din klasse og vælger export og jar fil
og så guider wizarden dig gennem det hele.
Avatar billede _carsten Nybegynder
27. februar 2005 - 22:09 #23
Lav dit manifest om, så virker det
Fra:  Main-Class: Training.Math1GUI

Til:  Main-Class: training.Math1GUI
Avatar billede cybershah Nybegynder
27. februar 2005 - 22:13 #24
carsten>> har lavet det med lille t i manifest (selvom pakken er med stort T) men nu kommer den samme besked som før. main class not found..
arne_v>> jeg ska nok prøve med eclipse. men vil lige få det her til køre først! men tak for tippet.
Avatar billede _carsten Nybegynder
27. februar 2005 - 22:19 #25
Hvis pakkenavnet i Math1GUI er med stort T, skal det selvfølgelig også være det i dit manifest

Lav følgende dir struktur: C:\X og C:\X\Y

læg dit manifest i C:\X
læg din Training mappe i C:\X\Y

Stil dig i C:\X

Kør fra cmd: C:\X>jar cvfm run.jar c:\X\math.mf Training

Det er dømt til at virke
Avatar billede _carsten Nybegynder
27. februar 2005 - 22:20 #26
Sludder !!!!

Lav følgende dir struktur: C:\X

læg dit manifest i C:\X
læg din Training mappe i C:\X\

Stil dig i C:\X

Kør fra cmd: C:\X>jar cvfm run.jar c:\X\math.mf Training

Det er dømt til at virke
Avatar billede cybershah Nybegynder
27. februar 2005 - 22:28 #27
det er lige præcis hva jeg gjorde.
har ændret det til stort T i manifest.

min mainklasse (Math1GUI.class) ligger her:
c:\Documents and Settings\Eclipse Workspace\OOP2\Training

manifestfilen (math.mf) ligger her:
c:\Documents and Settings\Eclipse Workspace\OOP2

jeg skriver følgende i cmd:
c:\Documents and Settings\Eclipse Workspace\OOP2>
jar cvfm run.jar math.mf Training\Math1GUI.class

run.jar bliver oprettet i OOP2/ men den kan ikke åbne programmet. der sker simpelthen ikke noget! men nu kommer "Could not find the main class. Program will exit" ikke længere frem.
Avatar billede _carsten Nybegynder
27. februar 2005 - 22:29 #28
Fjern Math1GUI.class
du MÅ KUN skrive sådan her:    jar cvfm run.jar math.mf Training
Avatar billede arne_v Ekspert
27. februar 2005 - 22:32 #29
Jeg har nu altså tit angiver *.class til jar kommandoen, så jeg tror ikke at det
er problemet.
Avatar billede arne_v Ekspert
27. februar 2005 - 22:34 #30
Men hvis du nu kopierer jar filen over i temp og udpakker med

jar xvf run.jar

Indeholder manifestet så det som det skal ?
Avatar billede _carsten Nybegynder
27. februar 2005 - 22:35 #31
Ja - jeg blev bare lige i tvivl om han kun fik selve klassen med
Avatar billede _carsten Nybegynder
27. februar 2005 - 22:39 #32
Udfra din kom: 22:28:14 tyder det faktisk på du har gjort det rigtigt denne, du sikkert bare "dollar" klasserne

Compileren splitter klassen op i flere klasser

Prøv lige denne her:  jar cvfm run.jar math.mf Training\*.class
Avatar billede _carsten Nybegynder
27. februar 2005 - 22:40 #33
Skal vi tage den en gang til

Udfra din kom: 22:28:14 tyder det faktisk på du har gjort det rigtigt denne gang, du mangler sikkert bare "dollar" klasserne
Avatar billede cybershah Nybegynder
27. februar 2005 - 22:41 #34
WOOOOOW!!!! det virker nu! skulle bare ha' fjernet Math1GUI.class tak til jer begge. men nu var det carsten som løst det helt.. men også al respekt til dig arne_v
Avatar billede cybershah Nybegynder
27. februar 2005 - 22:42 #35
altså konklusion:
manifest klassan, skulle være placeret udenfor pakken.
i cmd skulle der stå: jar cvfm run.jar math.mf Training
Avatar billede _carsten Nybegynder
27. februar 2005 - 22:43 #36
Synes Arne også skal smide et svar - jeg gjorde det jo ikke alene, og så fordeler du point som du synes det skal være!
Avatar billede cybershah Nybegynder
27. februar 2005 - 22:44 #37
ja ok.. vidste ikke at man kunne fordele pointene. så send du også et svar arne!
Avatar billede _carsten Nybegynder
27. februar 2005 - 22:46 #38
I din Training package har du sikkert nogle klasser der ser sådan ud

Math1GUI.class
Math1GUI$1.class
Math1GUI$2.class
Math1GUI$3.class
Math1GUI$4.class

De kommer alle med når du skriver jar cvfm run.jar math.mf Training
Avatar billede arne_v Ekspert
27. februar 2005 - 22:47 #39
svar
Avatar billede arne_v Ekspert
27. februar 2005 - 22:48 #40
Og så er det langt nemmere hvis man bruger ant ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester