Datei aus .jar kopieren

Nighty89

Grünschnabel
Hallo,

bin gerade dabei eine kleine Software in Java zu basteln.
Hintergrund ist eine Access-Datenbank über JDBC-ODBC.
Bisher kann das Programm quasi "überprüfen" ob eine ODBC-Quelle vorhanden ist. Wenn nicht, wird über ein
Workaround von Thomas Darimont (Danke ;-)) eine ODBC-Datenquelle erstellt und mit SQL die nötigen Tables erstellt.

Was ich nun vorhabe ist, dass sich die leere MDB-Datei vom Programm selbst aus dem JAR-Archiv entpackt, damit daraus
die ODBC-Datenquelle erstellt werden kann.
(weiß nich ob das jetzt verständlich war?)

Dachte dass das irgendwie mit dem Classloader geht aber weiß nich wie ich die Sache angehen soll.

Mfg
 
So in etwa. Google spuckt dir sicher sehr schnell was aus:

Java:
InputStream is = getClass().getRessourceAsStream("/template.mdb");
FileOutputStream os = new FileOutputStream(new File(".\\database.mdb"));
for(int read = 0; (read = is.read()) != -1;)
	os.write(read);
os.flush();
//Schließen.
VHIDT.
 
Hallo,

das sieht doch gut aus, vielen Dank! Nach was hast du denn gegooglet?
Muss es eben mal testen...

Mfg
 
Ich bezweifel, dass Kai dannach gegooglet hat xD

Aber vom Prinzip her ganz easy: Man kann über die Methode getResourceAsStream() eines Class-Objektes einen InputStream zu einer Datei in dem Projekt erhalten, auch wenn das Projekt in einer Jar sein sollte. Alternativ kann man auch die Methode getResource() verwenden, da bekommt man dann ein URL-Objekt zurück. Der Rest ist simples File-Handling.
 
Hallo Akeshihiro,

diesen Ansatz hatte ich auch verfolgt ;-)
Hatte mit dem Classloader schon ein URL-Objekt. Dachte dass ich das dann irgendwie einfach kopieren kann, quasi aus nem Temp-Verzeichnis aber das ging so nicht :D
Nochmal Danke!

Mfg
 
Zurück