24. oktober 2004 - 11:57
Der er
49 kommentarer og 2 løsninger
Problem med jar-fil til My-SQL database connect
Hej Jeg har lavet en jar-fil til at starte mit program, som bruger en My-SQL database. Min manifest-fil har følgende udseende: Main-Class: ProgramMain Class-Path: C:\j2sdk1.4.2_04\jre\lib\ext\mysql-connector-java-3.1.3-beta-bin.jar Og min build-jar-fil: cd Class jar cmf ..\Jar\Program.txt ..\Program.jar *.* pause Jar-fil bliver også oprettet og det hele men når jeg vil køre den får jeg følgende fejl Could not find the main claas. Program will exit Hvad gør jeg forkert?
Annonceindlæg tema
24. oktober 2004 - 12:09
#1
Hedder din main klasse ProgramMain uden pakke ?
24. oktober 2004 - 12:21
#2
ja... den ligger helt ude i roden af min pakke-struktur... hvis jeg går ind i selve jar-filen kan jeg også se at alle class-filerne ligger i den.
24. oktober 2004 - 12:32
#3
Du kører med: java -jar Progra,jar og jar tvf Program.jar viser META-INF/MANIFEST.MF ProgramMain.class ... ?
24. oktober 2004 - 12:34
#4
det fik jeg ikke lige fat i
24. oktober 2004 - 12:38
#5
ups java -jar Program.jar
24. oktober 2004 - 12:43
#6
Beklager men jeg er stadig ikke helt med på hvad du mener
24. oktober 2004 - 12:45
#7
Er det den kommando du bruger til at køre jar filen med ? Og ser output sådan ud når du lister indholdet af jar ?
24. oktober 2004 - 12:58
#8
jeg dobbelt-klikker blot på jar-filen og ja, mit output ser ud på den måde (dog ikke med store bogstaver - har det nogen betydning))
24. oktober 2004 - 13:51
#9
ProgramMain.class skal være præcis sådan jeg er ikke sikker med manifestet
24. oktober 2004 - 13:55
#10
ProgramMain.class er præcis sådan. Hvordan får jeg rettet manifestet til store bogstaver?
24. oktober 2004 - 13:57
#11
Jeg tror ikke at det er det. Den har fundet manifestet - eller viste den ikke hvad din main class var.
24. oktober 2004 - 13:58
#12
Du har ikke package i dine .java filer ?
24. oktober 2004 - 13:59
#13
jo... jeg har tre pakker... men main-filen ligger i roden af hele pakke-strukturen og ikke inde i nogen pakke (den ligger "direkte" i class-mappen)
24. oktober 2004 - 14:05
#14
Hmm - ved ikke om jeg kan tilføje noget, men Dit manifest bør se sådan ud: Manifest-Version: 1.0 Main-Class: ProgramMain Class-Path: C:\j2sdk1.4.2_04\jre\lib\ext\mysql-connector-java-3.1.3-beta-bin.jar Din jar sådan: meta-inf\MANIFEST.MF ProgramMain.class pakke1 Så bør du kunne dobbeltklikke!
24. oktober 2004 - 14:28
#15
Carsten --> det er nemlig også sådan de ser ud:), men den vil bare ikke starte
24. oktober 2004 - 14:31
#16
manifest står bare ikke med stort (nogen forskel??)
24. oktober 2004 - 14:32
#17
Så må jo være den her ".;" der mangler Prøv: Class-Path: .;C:\j2sdk1.4.2_04\jre\lib\ext\mysql-connector-java-3.1.3-beta-bin.jar
24. oktober 2004 - 14:33
#18
Den bør være: META-INF/MANIFEST.MF
24. oktober 2004 - 14:34
#19
Nej - det er ligegyldigt
24. oktober 2004 - 14:37
#20
carsten> 1) jar filer i manifest Class-Path er adskilt af mellemrum 2) jeg tror ikke rigtigt at . gør nogen stor forskel her
24. oktober 2004 - 14:41
#21
Næææ - det der gør forskellen har du allerede været inde på !! Passer ikke hvad jeg skrev, det skal være med STORT som Arne skriver META-INF/MANIFEST.MF Har lige testet!!
24. oktober 2004 - 14:44
#22
okay... men hvordan får jeg så skrevet META-INF/MANIFEST.MF med stort?
24. oktober 2004 - 15:00
#23
jar cmf Sti\Til\MANIFEST.MF Jarnavn.jar filnavne.class
24. oktober 2004 - 15:14
#24
den er jeg ikke helt med på... min build-jar-fil har nu følgende udseende... cd Class jar cmf ..\Jar\Program.txt ..\Program.jar *.* pause hvordan mener du jeg skal lave den om?
24. oktober 2004 - 15:17
#25
Er ..\Jar\Program.txt == Manifest ???
24. oktober 2004 - 15:20
#26
Min manifest-fil har følgende udseende: Main-Class: ProgramMain Class-Path: .;C:\j2sdk1.4.2_04\jre\lib\ext\mysql-connector-java-3.1.3-beta-bin.jar
24. oktober 2004 - 15:21
#27
Ja - men hvor er den fysisk placeret og hvor er class-filer placeret ??
24. oktober 2004 - 15:27
#28
-mappe1: BuidJar-fil -mappe2 (i mappe1): manifest-fil -mappe3 (i mappe1): class-filer
24. oktober 2004 - 15:31
#29
jar cmf mappe1\mappe2\MANIFEST.MF mappe1\Program.jar mappe1\mappe3\*.class
24. oktober 2004 - 15:36
#30
Iøvrigt skal du lige indsætte følgende linie øverst i dit manifest Manifest-Version: 1.0
24. oktober 2004 - 15:43
#31
Det står stadig med småt når jeg åbner jar-filen
24. oktober 2004 - 15:46
#32
Hvordan konstaterer du det ?? Bruger du følgende måde: jar tf mappe1\Program.jar ????
24. oktober 2004 - 15:48
#33
jeg kan åbne jar-filen og køre den nu... men jeg kan ikke få kontakt til min database "igennem" den
24. oktober 2004 - 15:50
#34
Hvilke fejl får du ??
24. oktober 2004 - 15:52
#35
Prøv og ret din Class-Ptah tilbage til det oprindelige udem .;
24. oktober 2004 - 15:52
#36
Class-Path
24. oktober 2004 - 16:04
#37
det virker heller ikke selvom jeg fjerner ".;"... jeg har lidt svært ved at finde ud af den præcise fejl.. jeg får jo ikke skrevet nogen fejl ud når jeg køre jar-filen (men køre jeg programmet direkte fra mit kodeprogram køre det udemærket). Men jeg tror umiddelbart ikke at jeg får kastet nogle fejl, det er bare som om at der bliver returneret null istedet for en tabel
24. oktober 2004 - 16:05
#38
Prøv med: Class-Path: mysql-connector-java-3.1.3-beta-bin.jar og placer den fil i samme directory som din egen jar fil
24. oktober 2004 - 16:11
#39
så virker, hvis jeg placere den i samme directory... er der nogen logisk forklaring på hvorfor?
24. oktober 2004 - 16:16
#40
Der må være et eller andet med syntax. Du kan evt. prøve: Class-Path: file:/C:/j2sdk1.4.2_04/jre/lib/ext/mysql-connector-java-3.1.3-beta-bin.jar
24. oktober 2004 - 16:17
#41
Men jeg vil kalde det god skik og brug at bundle alle jar filerne i samme dir.
24. oktober 2004 - 16:24
#42
--> Arne - har jeg ikke ret i at det ikke skulle være nødvendigt at medtage mysql-connector-java-3.1.3-beta-bin.jar i Class-Path i manifestet, når filen er placeret i ....jre\lib\ext\
24. oktober 2004 - 16:24
#43
Arne_v --> okay... det virker perfekt med Class-Path: file:/C:/j2sdk1.4.2_04/jre/lib/ext/mysql-connector-java-3.1.3-beta-bin.jar. Og tak for rådet angående at bundle jar-filer - det er nok værd at tænke meget over hvis man bruger mange eksterne jar-fil:) Tak for hjælpen til jer begge:) Smid et svar begge to... så vil jeg fordele point (Arne_v du får lidt mere end Carsten da det jo var din løsning som virkede)
24. oktober 2004 - 16:25
#44
svar
24. oktober 2004 - 16:27
#45
carsten> Jo - det burde det egentligt.
24. oktober 2004 - 16:28
#46
Ok med mig, at kun Arne for point!
24. oktober 2004 - 16:28
#47
Men jeg kan stadigvæk bedste lide alle jar i samme dir filosofien. Når man skal kopiere noget til en anden PC så er det meget nemmere at huske det hele. Det er nemmere med flere forskellige versioner af samme software.
24. oktober 2004 - 16:30
#48
Og nemmere når man opdaterer Java version.
24. oktober 2004 - 16:34
#49
Helt klart - jeg har aldrig brugt jre\lib\ext\ Ellers skal man rundt og checke opsætning og diverse på en masse maskiner
24. oktober 2004 - 16:40
#50
jah.. en rigtig god grund må man sige Carsten. tak for det, smider du lige et svar?:)
24. oktober 2004 - 16:42
#51
Så pyt da!
Kurser inden for grundlæggende programmering