Archief - JAR file en resource file

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

passero

Legacy Member
IK zit een beetje in de misserie met resource files die ik gebruik in mijn JAR file...
Mijn applicatie werkt perfect als ik ze niet in een jar file gebruik maar eens ik de jarfile uitvoer krijg ik fouten dat hij de files niet vind...

Das de inhoud van mijn JAR

mijnPackage/Test.java
mijnPackage/test.xml

Ik haal de resource op met volgende instructie:

URI url = Test.class.getClass().getResource("/mijnPackage/test.xml").toURI();

Geeft nullpointer omdat de file zogezegd niet bestaat in de JAR. Wanneer ik via winrar ga kijken dan zit die daar echt wel hoor.

Kheb al vanalles geprobeerd... mijnPackage/test.xml, test.xml /test.xml maar niets werkt. Volgens de doc dat ik gevonden heb moet /mijnPackage/test.xml echt wel werken maar toch geeft hij geen kick...

Iemand enig idee waar dit zou kunnen aan liggen? Kan het zijn dat om een of andere manier die file wel in de jar file zit maar dat hij uiteindelijk niet weet dat hij daar zit? Kan ik dat controleren?

WHiSPy

Legacy Member
Zit je package in 'n src directory in je jar-file? Zo ja, dan zou je test.xml dus in de root van de src moeten komen te staan. ;)

passero

Legacy Member
mijn src zit niet in een src directory.

IK heb dus gewoon

mijnPackages/Test.class
mijnPackages/test.xml

Dus jij zegt dat ik dan

src/mijnPackages/Test.class
src/test.xml

moet doen?
Eens proberen sie :)

Ah kheb het gevonden...
Een beetje stom eigenlijk maar kwist het echt niet. Ik gebruik die URI in de constructor van een File en blijkbaar lukt het daar niet. Hij kan effectief wel aan mijn files binnen de JAR maar wanneer ge die probeert te gebruiken in een java.io.File dan lukt dat niet. Die kan niet overweg met gearchiveerde bestanden. Kheb dus mijn procedure moeten aanpassen zodat die met een inputStreamReader werkt ipv een File en dan werkte het perfect.

forloRn_

Legacy Member
Nee, dat moet niet. De classloader verwacht een directorystructuur die je packages weerspiegelt.

Als test.xml en Test.class in hetzelfde package zitten, zou dit moeten werken:

Code:
URI url = getClass().getResource("test.xml").toURI();
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan