Ich habe ein Projekt, wo ich auf eine Ressource in einer JAR von einem anderen Projekt zugreifen möchte. Es ist nicht auf meinem Klassenpfad, daher ist ClassLoader keine Option. Ich habe versucht:Öffnen einer JAR-Ressource als FileStream
new FileInputStream("C:\\mydir\\my.jar!\\myresource.txt");
und erhielt eine FileNotFoundException.
JarInputStream ist möglicherweise eine Möglichkeit, aber ich möchte die Flexibilität des Eingabedateinamens als jar-Ressource oder nur eine Datei auf dem System (Benutzer entscheidet). Gibt es eine Klasse, die das kann oder muss ich selbst eine bauen?
Nicht sicher, ob es hilft, aber JAR-Dateien sind grundsätzlich ZIP-Dateien. Wenn Sie also etwas aus einer ZIP-Datei lesen können, können Sie es auf die gleiche Weise aus einem Jar lesen - vielleicht erweitert das Ihre Suche. –
@Mark - JAR-Dateien sind im Wesentlichen ZIP-Dateien, aber nur für den Moment. Gerüchten zufolge ändert sich das JAR-Format in Java 7. Hoffentlich wird die Verwendung der entsprechenden Abstraktionsklassen jeden JAR-Manipulationscode zukunftssicher machen (siehe Paket 'java.util.jar'). – McDowell