Avatar billede backupmand Nybegynder
14. januar 2003 - 20:45 Der er 9 kommentarer og
2 løsninger

Jar filens manifest-fil, opdatering af

Jeg har pakket mine klasser, billede og lyd-filer ned i en jar fil med flg kommando:
jar cvf DB.jar *.class audio images DB_Shower meta-inf
I meta-inf ligger min Manifest.mf med følgende info:
Main-Class: DB_Shower.DBshower
dvs. i pakken DB_Shower ligger en fil der hedder DBshower og i den fil er min main.
Det skulle være rigtigt.
Jeg forsøger at køre min endelige jar fil således:
java -jar DB.jar .. MEN jeg får flg fejl:
Failed to load Main-Class manifest attribute from DB.jar

Nogle ideer?
Avatar billede arne_v Ekspert
14. januar 2003 - 20:48 #1
Det er META-INF ikke meta-inf.
Avatar billede arne_v Ekspert
14. januar 2003 - 20:49 #2
Og prøv med:

jar cvmf jar-fil manifest-fil resten
Avatar billede arne_v Ekspert
14. januar 2003 - 20:49 #3
Manifest er lidt speciel !
Avatar billede arne_v Ekspert
14. januar 2003 - 20:53 #4
Avatar billede carstenknudsen Nybegynder
14. januar 2003 - 20:55 #5
Har du husket et linieskift i din
manifest fil efter din main class:
Main-Class: DB_Shower.DBshower<linieskift>
Avatar billede backupmand Nybegynder
14. januar 2003 - 22:43 #6
Jeg har fundet ud af det inden i svarede.
Jeg kan ikke lige huske hvad jeg skrev på cmd, men jeg placerede
en foruddefineret Manifest.mf i et meta-inf (med lowercase!!) bibliotek
i roden.
Så virkede det da jeg skrev java -jar DB.jar

Så vil jeg lige føre diskussionen videre. Min applikation benytter sig af en Driver, som ligger i en anden jar-fil, som jeg har pakket ned i roden af DB.jar. Driveren er en klasse og den kan ikke loades - er det fordi den skal placeres i det bibliotek, som den kommer i fra dens egne jar fil?
Altså det drejer sig om en mysql driver, som ligger i en jar fil der hedder
mm.mysql-2.0.4-bin.jar .. driveren Driver.class ligger i org.gjt.mm.mysql ..
skal denne driver ligge i samme bib-struktur i min DB.jar før den kan loade
klassen ?
Avatar billede backupmand Nybegynder
14. januar 2003 - 22:44 #7
jeg vil lige tilføje, at jeg ikke bare placerede min egen Manifest.mf i roden,
jeg opdaterede DB.jar med den Manifest.mf inden jeg kunne køre applikationen fra jar'en.
Avatar billede arne_v Ekspert
15. januar 2003 - 06:31 #8
1)  jar cvmf er stadig den autoriserede måde at lægge manifest ind på.

2)  Med hensyn til din MySQL driver, så kan Java ikke ikke læse en
    Jar fil inden i en Jar fil.

    Så du har to muligheder:
      A)  tage alle classes (ikke kun selve driveren) fra MySQL
          og anbringe i din Jar fil
      B)  distribuere din egen Jar og MySQL Jar som 2 filer
          og sætte classpath til MySQL Jar fra din Jar
          (det kan man gøre i manifest)
    B er den autoriserede !
Avatar billede arne_v Ekspert
15. januar 2003 - 06:35 #9
Se evt.:
  http://java.sun.com/j2se/1.4/docs/guide/jar/jar.html#JAR%20Manifest

Kort sagt er det:

Class-Path: navnene på Jar filer adskilt af space
Avatar billede arne_v Ekspert
15. januar 2003 - 11:22 #10
Med hensyn til upper/lower case står der:

#The names "META-INF", "MANIFEST.MF", and the filetype ".SF" should be generated as uppercase, but recognized in any case.
Avatar billede backupmand Nybegynder
15. januar 2003 - 16:07 #11
always someone who is right
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