Guten Tag,
ich Programmiere ein kleines Programm welches eine Access-Datei beim Start aus dem Jar-Archiv in den Userordner kopiert (soweit diese nicht bereits vorhanden ist).
Nun unter Eclipse funktioniert es wunderbar, nur wenn ich es als eine jar. auf dem Desktop starte, findet er den Pfad nicht.
Habe schon viele Lösungen versucht (ClassLoader.getSystemRessource(), getClass.getRessource(), MEINEKLASSE.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath())
jedoch kriege ich es nicht hin -.-°
Kann mir möglicherweise jemand sagen wie ich den Pfad von der .mdb auslesen kann?
Meine Methoden sehen so aus
Danke
ich Programmiere ein kleines Programm welches eine Access-Datei beim Start aus dem Jar-Archiv in den Userordner kopiert (soweit diese nicht bereits vorhanden ist).
Nun unter Eclipse funktioniert es wunderbar, nur wenn ich es als eine jar. auf dem Desktop starte, findet er den Pfad nicht.
Habe schon viele Lösungen versucht (ClassLoader.getSystemRessource(), getClass.getRessource(), MEINEKLASSE.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath())
jedoch kriege ich es nicht hin -.-°
Kann mir möglicherweise jemand sagen wie ich den Pfad von der .mdb auslesen kann?
Meine Methoden sehen so aus
Java:
private void createProgramDirectory() {
// TODO Auto-generated method stub
File file = new File(System.getProperty("user.home")
+ "\\w4n");
// prüft ob das verzeichniss vorhanden ist
if (file.isDirectory()) {
// verzeichniss ist vorhanden
// output dateien bestimmen
File output = new File(System.getProperty("user.home")
+ "\\w4n\\w4n.mdb");
// ist die output datei bereitsvorhanden
// System.out.println("output.length(): " + output.length());
if (!output.exists() || output.length() < 490000) {
// wenn nicht erstelle diese
this.copyFile();
}
} else {
// wenn verzeichniss nicht vorhanden, erstelle es
file.mkdir();
// kopiere die datei
this.copyFile();
}
}
Java:
public void copyFile() {
File input = new File(System.getProperty("user.dir")
+ ("\\src\\database\\w4n.mdb"));
System.out.println(System.getProperty("user.dir")
+ ("\\src\\database\\w4n.mdb"));
File output = new File(System.getProperty("user.home")
+ "\\w4n\\w4n.mdb");
FileChannel inChannel = null;
FileChannel outChannel = null;
try {
inChannel = new FileInputStream(input).getChannel();
outChannel = new FileOutputStream(output).getChannel();
inChannel.transferTo(0, inChannel.size(), outChannel);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inChannel != null)
try {
inChannel.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (outChannel != null)
try {
outChannel.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Danke
Zuletzt bearbeitet: