Gå til innhold

Anbefalte innlegg

Har nettopp levert en oblig der man skulle lage et spamfilter med GUI. Pakket det hele inn i en jarfil slik at det ikke skulle blir så altfor mange filer. Problemet er ved innlesning av filer, så bruker man en tilleggspakke som heter easyIO. Feilen jeg får er "java.lang.NoClassDefFoundError: easyIO/In", etterfulgt av masse annet tull (som man ikke trenger å bry seg om). Dette tyder på at jarfilen min ikke klarer å få tak i easyIO-pakken og bruke denne. Hvordan løser man så dette problemet? Må man kanskje legge til noe i MANIFEST.MF-filen? I så fall, hva da?

Endret av ti-guru
Lenke til kommentar
Videoannonse
Annonse

Det skulle holde å pakke dem i samme jar fil, bare pass på at mappene i jar filen og pakkedefinisjonene i koden stemmer overens så skulle det gå bra (easyIO filene skal ligge i en mappe som heter easyIO inni pakken).

 

Hvis du har dem i ulike pakker må du angi classpath med -cp direktivet til java.

 

Eller du kan gjøre deg selv en tjeneste å bruke java.io direkte, slike forenklingspakker forlenger egentlig bare veien til forståelse etter min mening.

Lenke til kommentar
  • 2 måneder senere...

Merkelige forslag..

 

Til neste oblig..! Dersom din .jar pakke er avhengig av andre pakker bør du løse dette på følgende måte:

 

Editer manifestet. Angi classpath for eksterne pakker. Ikke bland intern pakkestruktur i .jar filen med stinavnet til eksterne pakker. Stinavnet er abstrakt og roten (/) til stinavnet begynner der .jar filen er lagret. Eks. på manifest til MyJar.jar:

main-class: com.domain.me.MyMainClass

Class-Path: subfolders/of/MyJar/easyio.jar subfolders/of/MyJar/another.jar

 

Happy packaging!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...