2017-07-20 1 views
2

Obwohl ich viel Forschung getan habe, kämpfe ich immer noch um den richtigen Ort zu finden, um meine Access-Datenbank-Datei zu verwenden Mein Java-Projekt und meine letzte JAR-Datei (ohne den Code für jeden Fall ändern zu müssen).Eine Access-Datenbank-Datei an einem Ort, so dass es in der Entwicklung und bei der Verteilung verwendet werden kann

Ich kann es in das Arbeitsverzeichnis einfügen und den Code verwenden, um es bei der Arbeit in NetBeans zu bekommen.

DriverManager.getConnection("jdbc:ucanaccess://" + "res/mydatabase.accdb"); 

Dies ist jedoch nicht funktioniert, wenn ich die JAR-Datei ausführen (ich vermute, das liegt daran, dass Ordner nicht mehr das Arbeitsverzeichnis).

Ich habe zwei Ansätze bisher in Betracht gezogen:

  • die Datenbankdatei in einem Paket so zu platzieren, wenn die JAR-Datei erzeugt wird, ist es ein Teil davon ist. Ich habe gesehen, dass dies für Bilddateien funktioniert, aber nicht für die Datenbank funktioniert.

    DriverManager.getConnection("jdbc:ucanaccess://" + getClass.getResources("/res/mydatabase.accdb").getFile()); 
    

    Dies funktioniert nicht. Ich lese auch here, dass Sie die Datenbankdatei nicht direkt von der Kopie, die in der ausführbaren JAR-Datei eingebettet ist, öffnen können.

  • Ich habe auch gesehen examples wo Menschen den absoluten Dateipfad haben, aber ich würde lieber nicht, weil ich auf verschiedenen Computern arbeiten muss. (Sag mir, ob dies eine bessere Lösung ist, obwohl)

Meine erste Frage lautet: Wo kann ich die Datei speichern, so dass es gefunden werden kann, wenn ich es von NetBeans ausführen und wenn ich es aus dem Lauf Jar-Datei?

Meine zweite Frage ist: Gibt es eine bestimmte Codezeile, die ich verwenden muss, um von dort aus darauf zuzugreifen?

Antwort

1

Wenn Sie nach einem "echten" literalen Pfad (relativ oder absolut) suchen, der nicht nur für die Entwicklung, sondern auch für die Bereitstellung auf allen möglichen Zielplattformen funktioniert, dann hoffen Sie vielleicht zu viel. Möglicherweise müssen Sie sich damit begnügen, einen Code zu schreiben, der einen Pfad ableitet (oder dazu auffordert), möglicherweise basierend auf der Systemeigenschaft user.home.

Verwandte Themen