[Java] Classpath in jar-manifest niet gelezen door linux?

Pagina: 1
Acties:

  • MindStorm
  • Registratie: Juli 2002
  • Laatst online: 16-01-2024
Tijdens het maken van een jar heb ik alle benodigde libraries (hibernate etc.) in een mapje lib/ in de jar opgenomen, zodat ik mn eigen libraries kan gebruiken. Om deze ook daadwerkelijk te laten lezen moet de Manifest.MF worden aangepast om de jars in de Class-Path variabele op te nemen.

Mijn manifest ziet er nu zo uit:

code:
1
2
3
Manifest-Version: 1.0
Main-Class: nl.sparticle.sbot.Sbot
Class-Path: lib\hibernate3.jar lib\log4j.jar lib\postgresql.jar lib\commons-logging.jar lib\dom4j.jar lib\commons-collections.jar lib\cglib.jar lib\jta.jar


onder windows (de werk-machine) draait het prima, alleen onder linux (gentoo) krijg ik een java.lang.NoClassDefFoundError. Is er een verschil tussen de manifest van windows en die van linux? Ik ben dit nog niet eerder tegengekomen.

Wat ik wel al heb geprobeerd is de slashes omdraaien, maar dat heeft geen verschil gemaakt...

[ Voor 1% gewijzigd door MindStorm op 18-09-2006 13:27 . Reden: foutje in de manifest. ]


  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Moet je je originele 'classpath' environment-variable er ook niet bijzetten?

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
probeer het eens met foreward slashes.

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • MindStorm
  • Registratie: Juli 2002
  • Laatst online: 16-01-2024
Feyd-Rautha schreef op maandag 18 september 2006 @ 13:29:
Moet je je originele 'classpath' environment-variable er ook niet bijzetten?
Als het goed is pakt ie die vanzelf. Hij klaagt ook niet over mn andere classes, die kan ie wel vinden. Alleen alles in de /lib directory vindt ie niet.

Wanneer ik m start met
code:
1
java -cp $JAVA_HOME -jar test.jar
doet ie het overigens evengoed niet, en dan pakt ie zeker weten wel de normale classpath..

  • MindStorm
  • Registratie: Juli 2002
  • Laatst online: 16-01-2024
ronaldmathies schreef op maandag 18 september 2006 @ 13:30:
probeer het eens met foreward slashes.
die heb ik ook al geprobeerd, maar dat helpt niet. Heeft t zin om te proberen of ./ helpt?

  • momania
  • Registratie: Mei 2000
  • Laatst online: 11:43

momania

iPhone 30! Bam!

Je kan geen jar's in jar's stoppen en die middels classpath benaderen. Iig niet zonder aanpassingen in de classloader ;)

Dat het onder windows wel gewerkt heeft is raar... daar had je waarschijnlijk alle benodigde jars sowieso al in je classpath staan.

Neem je whisky mee, is het te weinig... *zucht*


  • MindStorm
  • Registratie: Juli 2002
  • Laatst online: 16-01-2024
momania schreef op maandag 18 september 2006 @ 13:37:
Je kan geen jar's in jar's stoppen en die middels classpath benaderen. Iig niet zonder aanpassingen in de classloader ;)

Dat het onder windows wel gewerkt heeft is raar... daar had je waarschijnlijk alle benodigde jars sowieso al in je classpath staan.
Ik heb t voorbeeld hiervandaan: http://en.wikipedia.org/w...e_path_in_a_Manifest_file

In windows werkte het pas nadat ik deze jars in de manifest heb opgenomen, daarvoor niet. En ik heb ze ook niet in mn classpath staan...

Maar waar zou ik ze dan bij moeten zetten?

  • momania
  • Registratie: Mei 2000
  • Laatst online: 11:43

momania

iPhone 30! Bam!

In dat voorbeeld verwijst het classpath in de manifest naar jars op disk, in een lib folder die in de zelfde dir staan als de main jar file.
Classpath verwijst daar dus niet naar jars IN de jar file, want dat kan gewoonweg niet ;)

Je moet dus alle jars uit je main jar halen en die in een lib directory naast je main jar neerzetten. Dan moet het werken :)

[ Voor 11% gewijzigd door momania op 18-09-2006 13:41 ]

Neem je whisky mee, is het te weinig... *zucht*


  • MindStorm
  • Registratie: Juli 2002
  • Laatst online: 16-01-2024
momania schreef op maandag 18 september 2006 @ 13:40:
[...]

In dat voorbeeld verwijst het classpath in de manifest naar jars op disk, in een lib folder die in de zelfde dir staan als de main jar file.
Classpath verwijst daar dus niet naar jars IN de jar file, want dat kan gewoonweg niet ;)
Ik zie het...en zo was het ook bij mn windows |:( Dat ik daar niet even naar heb gekeken..

Bedankt!
Pagina: 1