Avatar billede bris Nybegynder
17. maj 2006 - 09:20 Der er 6 kommentarer

inkludere jar i jars

Jeg har lavet noget kode, som bruger en jar fil, der indeholder biblioter som jeg ikke selv har lavet. Det kunne være hvad som helst.
Lad os sige, at jeg har lavet klasse1.java, som bruger klasser fra bib.jar, og nu kunne jeg godt tænke mig at smide det i en stor jar fil. Det kan jeg sagtens gøre (bruger eclipse), men når jeg så eksekverer den, så skriver den:
Exception in thread "main" java.lang.NoClassDefFoundError: com/Thefirm/Product/Class1
Så det er i princippet et problem om at "fortælle" min jar fil, at den skal leder efter klasser i den anden jar fil. Er det noget med den manifest fil?
Avatar billede mikkelbm Nybegynder
17. maj 2006 - 09:23 #1
Det kan ikke lade sig gøre sådan umiddelbart. Så skal du skrive din egen classloader, hvor du fortæller den, at den skal lede efter andre jarfiler i din jar fil.
Avatar billede mikkelbm Nybegynder
17. maj 2006 - 09:26 #2
Man kan jo også forsvare det ved, at rent vedligeholdelsesmæssigt er det mange gange nemmere at vedligholde flere forskellige jarfiler end at skulle putte det hele i én stor fil hver gang. Blot min mening.
Avatar billede bris Nybegynder
17. maj 2006 - 09:32 #3
Okay, så lad os tage et andet scenarie. Lad os sige, at jeg bare har min egen jar fil, som gerne vil bruge klasser fra en anden jar fil. SKal de så bare ligge i samme folder?
Avatar billede mikkelbm Nybegynder
17. maj 2006 - 09:44 #4
Nej, så er det du skal sætte det op i dit manifest.

Main-Class: sti.til.MainClass
Classpath: jar1.jar mappe/jar2.jar // <-- Husk linjeskift efter denne linje
Avatar billede mikkelbm Nybegynder
17. maj 2006 - 09:46 #5
Og det hedder vist: Class-Path: ....

http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html
Avatar billede esbenp Nybegynder
18. maj 2006 - 22:44 #6
Der er et eclipse plugin der hedder fatjar der gør hvad du efterspørger.

/Esben
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