14. januar 2003 - 20:45Der 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
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 ?
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.
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 !
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.