Avatar billede dennism Nybegynder
04. maj 2010 - 14:29 Der er 2 kommentarer og
1 løsning

Java: jar med referencer

Jeg har et projekt i Eclipse, hvor jeg har en referencer.  Jeg laver en jar-fil med export to Jar i Eclipse. Jeg kan se, at denne jar-fil ikke indeholder den reference, som projektet bruger. Derfor kan jeg ikke køre Jar-filen, da den så pludselig mangler referencen. Jeg får en NoClassDefFoundError for en af klasserne i referencen.

Det er for så vidt fint, at min jar-fil til reference ikke ligger i den jar-fil der bliver genereret - men at den skal ligge sammen med den jar-fil der bliver genereret.
Men hvordan får jeg så kørt jar-filen, hvor min reference er med i classpath?

Jeg har forsøgt:
java -cp ref.jar -jar myjar.jar

Men det virker ikke, selvom begge jar-filer ligger i samme mappe.

Hvordan skal dette løses?
Avatar billede arne_v Ekspert
04. maj 2010 - 15:18 #1
Jar filer kan ikke bruges hvis de ligge rinden i en anden jar file (med standard classloader).

-cp og -jar er gensidigt udelukkende.

Du har to muligheder:

A)

java -cp myjar.jar;ref.jar dinpackage.DinMainClass

B)

java -jar myjar.jar

med et manifest med:

Main-Class: dinpackage.DinMainClass
Class-Path: ref.jar

(og saa skal ref.jar ligg ei samme fir som myjar.jar)

Den sidste virker med "dobbelt klik".
Avatar billede dennism Nybegynder
04. maj 2010 - 15:21 #2
Tak for hjælpen. Jeg fik Eclipse til at lave denne manifest indbygget i Jar-filen.

Vil du smide et svar?
Avatar billede arne_v Ekspert
04. maj 2010 - 15:47 #3
kommer her
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