Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[JAVA] Moeite met JAR icm Libraries

Pagina: 1
Acties:

  • Teeno
  • Registratie: Juni 2007
  • Laatst online: 19-11 12:23
Ik maak in mijn applicatie nu gebruik van twee externe libraries, een DateTimePicker en een lib om PDF files te schrijven (iText).

Zolang ik in de IDE werk en compile gaat het helemaal prima. Ik heb in de project properties ook opgegeven dat dit required libraries zijn.

Zodra ik een JAR bestand build, merk ik dat de DateTimePicker wel mee wordt genomen, maar iText niet. Als ik de JAR uitpak zie ik ook de com\lavantech\* van de DTM in de classpath staan, en de com\lowagie\* van iText niet.

Waarin kan het verschil nu zitten dat mijn builder deze library niet meeneemt met het builden? Als IDE gebruik ik Borland JBuilder 2005.

Als ik in de project properties de jdk instel van 1.6.0_03-b05 naar 1.6.0_05-b13 werken beide libraries niet meer in mijn IDE, ze kunnen dan niet meer gevonden worden. De library jars staan niet eens in de JDK map in C:\Program Files\Java maar in de dir van de IDE.

Kan hier wat hulp geboden worden want ik ben zo'n beetje het spoor kwijt.

Excuseer eventueel vaag taalgebruik maar het is al laat en ik ben de hele avond al met deze onzin bezig :O

Verwijderd

Altijd geneuzel met die jar-distributies. Netbeans zet het wel goed in je dist-folder, maar veel ide's zetten libraries helemaal niet in je classpath of ze verwijzen gewoon waar jar's op jouw schijf staan met een absoluut pad.

Anyway, wat je meestal doet met een stand-alone applicatie; je hebt je jar (je applicatie) en daarnaast een lib-directorie met alle jar's waar je gebruik van maakt.

In de jar van je applicatie zit een file Manifest.MF in de META-INF directory. Daar neem je een Classpath-regel op met een relatief pad naar je libraries. Als volgt:

Class-Path: lib/log4j-1.2.15.jar lib/bcmail-jdk14-132.jar lib/bcprov-j
dk14-132.jar lib/iText.jar

Om één of andere reden werkt het soms niet als je aan het eind van je Manifest.MF geen extra loze enter hebt staan.

Meeste mensen gebruiken overigens ANT om distributies te builden. In veel IDE's zit dat ingebakken, dus als je tijd hebt zou je ook daar naar kunnen kijken.

  • Standeman
  • Registratie: November 2000
  • Laatst online: 22:09

Standeman

Prutser 1e klasse

Wat je in iedergeval kan proberen is alle jars bij elkaar gooien en dan je applicatie starten:
code:
1
java -cp <file>.jar;<file2>.jar <yourPackage>.<YourMainClass>


En dan natuurlijk wat tussen < en > staat even vervangen door de echte namen :)

The ships hung in the sky in much the same way that bricks don’t.


  • Teeno
  • Registratie: Juni 2007
  • Laatst online: 19-11 12:23
Excuseer mijn late reactie,

Ik heb het tijdelijk opgelost door de JAR te renamen naar .RAR, de library map met behulp van WinRAR in de rar plaatsen, en weer renamen naar JAR.

Binnenkort toch maar de omschakeling maken naar Netbeans

Verwijderd

Mazzel dat WinRAR ook zipfiles ondersteunt, want jar files zijn gewoon zip... ;)

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Ik gebruik zelf altijd Eclipse, en daar zet ik alle .jar files die ik nodig heb in een /lib directory binnen het project. Als ik dan een .jar build worden die meegenomen. Eclipse stopt kennelijk alleen dingen die binnen je projectstructuur staan in je .jar. In bijvoorbeeld Visual Studio heb je daar gewoon properties (copy local) e.d. voor.

https://niels.nu

Pagina: 1