config, data und logs Verzeichnis werden unter Linux im HOME Verzeichnis erstellt

Issue #220 resolved
MxO2204 created an issue

Generell sollten alle automatisch angelegten Verzeichnisse des Programms als Unterverzeichnisse des Programm Verzeichnis angelegt werden. Dies funktioniert unter Windows sehr gut (unter Windows inkl. des Logs Verzeichnisses).

Dies sieht dann unter Windows z.B. so aus:
C:\Programme\MyMDb-CE
C:\Programme\MyMDb-CE\config
C:\Programme\MyMDb-CE\data
C:\Programme\MyMDb-CE\logs

Unter Linux ist es jedoch so, dass die neu erstellten Verzeichnisse (config, data und logs) im HOME Verzeichnis des Benutzers angelegt werden!
Im Beispiel wurde das Verzeichnis “programme/mymdb-ce” im HOME Verzeichnis des Benutzers “user” angelegt und das MyMDb-CE.jar File in dieses Verzeichnis kopiert und von dort aufgerufen.

Das sieht dann unter Linux so aus:

/home/user/config
/home/user/data
/home/user/logs
/home/user/programme/mymdb-ce

Dies sollte geändert werden! Standardmäßig sollten die Verzeichnisse so aussehen:

/home/user/programme/mymdb-ce
/home/user/programme/mymdb-ce/config
/home/user/programme/mymdb-ce/data
/home/user/programme/mymdb-ce/logs

Also die vom Programm (hier der .jar File) erstellten Unterverzeichnisse sollten auch direkt als Sub-Directories unter dem Verzeichnis erstellt werden, wo das Programm liegt.

Das Ganze hat jetzt erstmal noch nichts mit der Möglichkeit zu tun, das config und das data Verzeichnis konfigurierbar zu haben. Es geht hier um den Standard, wo ohne Änderungen die Verzeichnisse angelegt werden.

System:
Linux Mint 20.3 in einer VBox Umgebung
Programm MyMDb-CE Version 2.1.0

PS. Habs mit der 2.0.0 und der 1.9.3 getestet (die letzte “alte” Version die ich habe) - überall das gleiche Problem.

Comments (2)

  1. MxO2204 reporter

    @birkner hatte den Fix für dieses Problem. Danke dafür!

    Das Problem entsteht, wenn man die .jar Datei z.B. mittels Dateiverwaltung GUI startet. Dann liegt die Datei zwar in einem Unterverzeichnis des HOME Verzeichnis, der Start erfolgt jedoch aus dem HOME Verzeichnis. Und dann werden dort die config, data und logs Verzeichnisse angelegt.

    Lösung: die MyMDb-CE.jar Datei muss aus dem Verzeichnis aus aufgerufen werden, in dem sie auch liegt. Um das sicherzustellen, kann z.B. eine Shell Datei erstellt werden, z.B. mdb.sh. Die Datei muss folgenden Inhalt haben:

    bash -c 'cd /home/user/<Pfad zum Programm> && java -jar MyMDb-CE.jar'

    Die Datei kann dann irgendwo abgelegt sein, sie muss ausführbar sein (ggf. chmod +x).
    Der Aufruf kann dann aus dem Verzeichnis z.B. mit ./mdb.sh aufgerufen werden.
    Jetzt werden die config, data und logs Verzeichnisse als Unterverzeichnisse des Programm Verzeichnisses angelegt!

    Das Ticket kann geschlossen werden.

    PS. Old.Obelix wird die Problematik ins Handbuch aufnehmen. Ich werde noch einen Wiki Eintrag dazu schreiben.

    Danke für alle, die zur Lösung beigetragen haben!

  2. Log in to comment