Hilfe beim Lesen von Pfaden und Systemvariablen

alfware17

Mitglied
Hallo, ich habe vor ca 10 Jahren einmal Java in einer 6-Wochen Fortbildung gelernt - mein Wissensstand ist im Wesentlichen 2015 stehengeblieben (Java 8, ein bißchen SQLite, IDE Eclipse Oxygen, Zielplattform Windows aber möglichst auch Linux(Mint)). Ich habe ein paar Anwendungen gemacht, die wichtigste ist ein Sprücheklopfer, der eben Sprüche zufällig ausgiebt (ich habe sie als SQLite Datenbank gespeichert).
Das Ganze wurde für Android entwickelt, läuft im Wesentlichen auch in Java/Desktop (nur anders) und dann habe ich es nach Lazarus portiert, weil Pascal eigentlich meine Sprache ist für Hobby (ich bin beruflich an einer ganz anderen Baustelle, Cobol...). Nun wollte ich mich mal wieder Java widmen.
Es gibt für mein Anzeigeprogramm ein Hilfprogramm, welches aus Textfiles eben die SQLite-Datenbank macht und zwar habe ich (ziemlich) gleiche Programme in Java und Pascal. Ziemlich heißt, ich habe das Pascal-Programm weiterentwickelt und wollte nun in Java nachziehen, aber da kommen wir zu meinem Problem. Ich fürchte, mir fehlen ein paar Grundlagen bzw ich könnte einen Anschubser gebrauchen.

Was fehlt mir: Das Pascal-Programm sucht im Computer nach 1.) Registry-Eintrag 2.) Systemvariable (sie heißen einfach zitadell und es soll ein Pfad drin sein) 3.diverse Homedirectories (eigene Dateien, Dokumente, documents/zitadell etc) und 4.) noch anwendungsspezifische Directories zB c:\bernd\zitadell und so was. Die Möglichkeiten 1-4 werden durchsucht (Linux natürlich ohne 1.) und wenn etwas gefunden wird, wird geprüft ob eine meiner SQLite-Datenbanken da ist und dann wird die eben genommen. Ansonsten im aktuellen Verzeichnis oder neu angelegt. Der Algorithmus funzt in Pascal gut, auch die Reihenfolge wenn mehrere da sind.
Ich habe eine Steuer-Prozedur (Methode) und rufe Unter-Prozeduren (Methoden) auf, im Wesentlichen für 1. bis 4. je eine.
Die Steuerung kriege ich in Java auch hin, ich denke 3. auch denn das macht das alte Java-Programm schon (nur 1 Home-Directory aber das ist also leicht). Nur fehlt mir ein bißchen die Technik. wie ich 1., 2. und 4. abfrage. Meine Google-Suche speziell zu 1. läßt mich schon mal verzweifeln was da alles so an Lösungen kam.

Kann mir bitte jemand helfen? Und bitte - keine supermodernen Klassen, die ich in Java 8 noch nicht kenne. Ich möchte nicht ein super neues Programm entwerfen, sondern nur die oben beschriebene Funktionalität 1-4 nachrüsten. Danke!
 

KonradN

Super-Moderator
Mitarbeiter
Nur fehlt mir ein bißchen die Technik. wie ich 1., 2. und 4. abfrage.

Registry
Also Java ist gedacht als unabhängig von der Plattform, daher gibt es da nichts wie die Registry. Wenn Du sowas machen willst, dann wird es tatsächlich etwas komplexer. Möglichkeiten, die ich direkt sehe:

a) Preferences (Java SE 17 & JDK 17) (oracle.com) könnte man einmal austesten. Unter Windows sind die Werte wohl in der Registry und ggf. passt es um Deinen Wert auszulesen? Habe ich aber nie benutzt und evtl. ist die Idee Müll. Siehe dazu Read/Write the Registry (Windows) - Real's Java How-to (rgagnon.com)

b) Über Aufrufe von externen Prozessen - Du kannst einfach ein Programm starten, dass die Registry ausliest. ("reg query" Aufrufe)

c) JNA - einfach die native Methoden aufrufen: Read/Write Windows Registry using JNA - Real's Java How-to (rgagnon.com)

Umgebungsvariablen
Die Umgebungsvariablen sind kein Problem. Dazu dient System.getEnv() bzw. System.getEnv(String).

Spezielle Verzeichnisse
Hier kommt dann System.getProperty() ins Spiel. Aber sehr viel gibt es nicht, da vieles Speziell für das Betriebssystem ist. Da helfen ggf. die Umgebungsvariablen weiter, denn Windows setzt sehr viele Variablen...
Was es hier gibt findet sich unter System (Java SE 17 & JDK 17) (oracle.com)
 

alfware17

Mitglied
Hallo und vielen Dank für deine Antwort.

Ich habe jetzt einfach mal ChatGPT gefragt (4 einzelne Fragen, und dann habe ich das schnell in Eclipse
zusammengesetzt), mehr brauchte und wollte ich eigentlich nicht...

Natürlich kann ich ChatGPT auch noch fragen ob es mir den ganzen Code (die Steuerung und den Aufruf der 4 Klassen) aus Pascal nach Java umschreibt, aber so faul bin ich nun doch nicht und das kriege ich auch hin, mir ging es nur um die technischen Lösungen des Zugriffs 1-4.

Ja, es sind noch Standardwerte, weil ich die projektspezifischen Pfade und Variablen noch nicht eingetragen habe (eintragen konnte), aber generell scheint es zu funktionieren.

Bei 3/4 kann ich die Unterverzeichnisse zum Home bzw benutzerspezifisch noch mit + verketten, das Knowhow und was wo ist bzw sein soll und noch betriebssystemabhängig (eigene Dateien, Dokumente bzw documents und so was) findet Pascal schon.

Was mir nur aufgefallen ist. Du schreibst System.getEnv() - war das Gewohnheit? Eclipse und ChatGPT beharren auf getenv() mit kleinem e.
Bei getProperty() dann wieder großes P....

Java:
package chatGPT;

import java.util.prefs.Preferences;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class chatGPT
{

   public static void main(String[] args)
   {

      // 1. Registry
      // Definiere den Pfad zum Registry-Eintrag
      String registryPath = "HKEY_CURRENT_USER\\Software\\DeinFirmenname\\DeineAnwendung";
      String registryKey = "BeispielSchlüssel";

      // Erhalte die Preferences-Instanz für den angegebenen Pfad
      Preferences preferences = Preferences.userRoot().node(registryPath);

      // Lese den Wert des Registry-Eintrags
      String registryValue = preferences.get(registryKey, "Standardwert");

      System.out.println("Wert des Registry-Eintrags: " + registryValue);

     
      // 2. Umgebungsvariable
      // Gib den Namen der Umgebungsvariable an, die du auslesen möchtest
      String variableName = "MEINE_UMGEBUNGSVARIABLE";

      // Versuche, die Umgebungsvariable auszulesen
      String variableValue = System.getenv(variableName);

      if (variableValue != null)
      {
         System.out.println("Der Wert von " + variableName + " ist: " + variableValue);
      }
      else
      {
         System.out.println("Die Umgebungsvariable " + variableName + " existiert nicht.");
      }

     
      // 3. Homedir lesen
      // Dateiname der zu öffnenden Datei
      String fileName = "beispiel.txt";

      // Erhalte den Pfad zum Home-Verzeichnis des Nutzers
      String userHome = System.getProperty("user.home");

      // Erstelle einen Dateipfad zur gewünschten Datei im Home-Verzeichnis
      String filePath = userHome + File.separator + fileName;

      // Versuche, die Datei zu öffnen und ihren Inhalt zu lesen
      try
      {
         File file = new File(filePath);
         if (file.exists())
         {
            FileReader reader = new FileReader(file);
            int c;
            while ((c = reader.read()) != -1)
            {
               System.out.print((char) c);
            }
            reader.close();
         }
         else
         {
            System.out.println("Die Datei " + filePath + " existiert nicht.");
         }
      }
      catch (IOException e)
      {
         e.printStackTrace();
      }

     
      // 4. Benutzer-Dir lesen
      // Passe diesen Dateipfad an, um auf die gewünschte Datei zuzugreifen
      String filePath2 = "C:\\BenutzerdefiniertesVerzeichnis\\beispiel.txt";

      try
      {
         File file = new File(filePath);
         if (file.exists())
         {
            // Öffne die Datei im Lese-Modus
            FileReader fileReader = new FileReader(filePath2);
            BufferedReader bufferedReader = new BufferedReader(fileReader);

            String line;
            while ((line = bufferedReader.readLine()) != null)
            {
               System.out.println(line);
            }
            // Schließe die Datei
            bufferedReader.close();
         }
         else
         {
            System.out.println("Die Datei " + filePath2 + " existiert nicht.");
         }
      }
      catch (IOException e)
      {
         e.printStackTrace();
      }

   }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
J Hilfe beim verstehen Java Basics - Anfänger-Themen 3
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
J Hilfe beim Programmieren Java Basics - Anfänger-Themen 5
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
W Hilfe beim Chat Programm Java Basics - Anfänger-Themen 14
S Erste Schritte Hilfe beim lernen von Programmieren Java Basics - Anfänger-Themen 2
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
J Hilfe beim Runden Java Basics - Anfänger-Themen 4
F (Eclipse) Beim importieren etwas fehlerhaft bitte um Hilfe :) Java Basics - Anfänger-Themen 3
V Erste Schritte Hilfe gesucht beim einstieg in Java und erste Aufgaben aus der Berufsschule Java Basics - Anfänger-Themen 9
S Compiler-Fehler Anfänger sucht Hilfe. Fehler beim Compilieren Java Basics - Anfänger-Themen 6
I Hilfe beim löschen von Buchstaben. Java Basics - Anfänger-Themen 1
I Hilfe beim löschen schon Buchstaben. Java Basics - Anfänger-Themen 4
J Hilfe beim "Verknüpfen" von zwei Klasse Java Basics - Anfänger-Themen 15
B Hilfe beim Kreisberechnungsprogramm Java Basics - Anfänger-Themen 6
D Hilfe beim übersetzen in der Klasse Throwable Java Basics - Anfänger-Themen 2
S Datentypen Hilfe beim Typecasting Java Basics - Anfänger-Themen 7
F Erste Schritte Hilfe beim Algorithmus finden Java Basics - Anfänger-Themen 8
R Brauche Hilfe beim fertigstellen eines Chat programms Java Basics - Anfänger-Themen 8
H Hilfe beim Programmablaufplan Java Basics - Anfänger-Themen 2
C Hilfe beim Zeichnen Java Basics - Anfänger-Themen 8
P Hilfe beim einlesen eines Textes Java Basics - Anfänger-Themen 11
B Hilfe beim Verständnis zu Generics Java Basics - Anfänger-Themen 7
D Hilfe beim SDF Datum Ausgabe Java Basics - Anfänger-Themen 20
S brauche hilfe beim fehler finden Java Basics - Anfänger-Themen 2
B Co2 rechner hilfe beim programmieren Java Basics - Anfänger-Themen 10
D Hilfe beim einlesen eines Strings mit Leerzeichen Java Basics - Anfänger-Themen 16
C Brauche dringend hilfe beim exception im code Java Basics - Anfänger-Themen 5
E Hilfe beim Einstieg Java Basics - Anfänger-Themen 46
T brauche HILFE beim Junit test:eek: Java Basics - Anfänger-Themen 11
P HILFE !!! erste aufgabe beim programmieren Java Basics - Anfänger-Themen 13
S Bisschen hilfe beim Sudoku Lösen benötigt Java Basics - Anfänger-Themen 7
V Hilfe beim implementieren von Iterator Java Basics - Anfänger-Themen 5
Y Brauche Hilfe beim Programm Java Basics - Anfänger-Themen 83
Developer_X Hilfe beim umbauen von Strings Java Basics - Anfänger-Themen 4
S Bitte um Hilfe beim unsortierten Binärbaum!! Java Basics - Anfänger-Themen 6
M Brauche Hilfe beim Verstehen vom Quellcode Java Basics - Anfänger-Themen 4
G Fehler beim Ausführen HILFE! Java Basics - Anfänger-Themen 12
V Brauche Hilfe beim Programmieren Java Basics - Anfänger-Themen 3
V Brauche Hilfe beim Programmieren Java Basics - Anfänger-Themen 9
A Hilfe beim "übersetzen" Java Basics - Anfänger-Themen 7
O Linux - Fehler beim kompilieren - HILFE Java Basics - Anfänger-Themen 4
S brauche hilfe beim dateien kopieren / bearbeiten Java Basics - Anfänger-Themen 3
E brauche hilfe beim KeyListener Java Basics - Anfänger-Themen 4
S Hilfe beim Einlesen Java Basics - Anfänger-Themen 6
K Hilfe beim starten eines Programms! Bitte helfen. Java Basics - Anfänger-Themen 8
D Hilfe beim Übergeben vom JTextfield Java Basics - Anfänger-Themen 2
E hilfe beim code Java Basics - Anfänger-Themen 3
I Hilfe beim Java-Applet Beispiel Java Basics - Anfänger-Themen 27
G Hilfe zur einer Aufgabe: Datumsüberprüfung beim Gregorianis Java Basics - Anfänger-Themen 2
K Brauche Hilfe beim Programmieren eines Funktionsplotters Java Basics - Anfänger-Themen 3
B Hilfe beim Schüler-Project Java Basics - Anfänger-Themen 4
G Hilfe beim addieren(Anfänger) Java Basics - Anfänger-Themen 12
F Hilfe beim Zeichnen in JPanel Java Basics - Anfänger-Themen 2
L Kompletter Neuling: Hilfe beim ersten Java Versuchen Java Basics - Anfänger-Themen 12
F Hilfe beim erstellen von Jar files! Java Basics - Anfänger-Themen 2
A Hilfe beim Java-Einstieg Java Basics - Anfänger-Themen 3
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
H pdf stempel - Hilfe erbeten Java Basics - Anfänger-Themen 6
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
F RegEx Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
U Ich bräuchte Hilfe Java Basics - Anfänger-Themen 1
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
P Hilfe gesucht Java Basics - Anfänger-Themen 11
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
R Java Bücher hilfe Java Basics - Anfänger-Themen 9
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
I Scheduling: "Quartz" verwenden, Hilfe bei Umstellung Java Basics - Anfänger-Themen 3
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
SpiritsHuner Hilfe!! Java Basics - Anfänger-Themen 16
Lacotto Java Kurs Aufgaben Hilfe Java Basics - Anfänger-Themen 14
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
Neuling47 Denkfehler? Hilfe Java Basics - Anfänger-Themen 11
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben