B-Man: Als ik "/" voor de filenaam zet, in welke root wordt er dan gekeken ? in de root van de JAR file ?
Als je een / gebruikt wordt er in de root van de classpath gezocht. Dat kan dus op heel veel plaatsen op het systeem zijn en meestal ook . (punt) De huidige directory dus. Je hoeft bij Class.getResource niet percee resources uit de huidige jar file te halen.
Ik had voorheen het bestand er al naast staan, en kwam er toen achter dat ik met
code:
1
| InputStream in = new FileInputStream("/pad/naar/properties"); |
alleen de file kan benaderen als ik een absoluut pad opgeef (alleen de naam van de properties file leverde een FileNotFoundException op, terwijl er een "." in mijn classpath staat...).
Bij het openen van een file wordt de classpath niet gebruikt. Als je er geen / voor zet, wordt er gewerkt vanaf de huidige directory.
Kan een FileInputStream alleen geinitialiseerd worden met een absoluut pad ? Ik las net dat een File object ook met een relatief pad kan worden geinitialiseerd, zal het zometeen eens proberen.
Klopt, het moet gewoon relatief kunnen. Sterk nog, ik gebruik ze altijd relatief. Ik snap eigenlijk ook niet waarom het helemaal niet lukt

.
Misschien is het nog wel de makkelijkste en mooiste oplossing om even van de user.home gebruik te maken. Deze system property wijst naar de home directory van de gebruiker. Uiteraard moet die file daar dan wel staan

.