Input/Output .java-Dateien auslesen

Bernstein

Mitglied
Hallo,

Ich drehe durch: Ich habe mich damit abgefunden, dass es nicht einfach ist, Variablen aus einem .java-File auszulesen. Aber dass es so schwierig werden würde dachte ich nicht.

Ich habe es mit FileReader versucht. Da kommt nur Schwachsinn bei rum.

:question:

Wie kann ich .java-Dateien irgendwie auslesen?

:question:

Das "Irgendwie" ist durchaus umfassend gemeint. Ich habe keine Beschränkungen, außer der, dass ich (da keine .class-Dateien vorliegen) nicht auf ClassReader zurückgreifen kann.

LG,

B. Bernstein
 

Bernstein

Mitglied
Ok, .java-Dateien kann man auslesen... aber es steht nicht das drinn, was man hineinprogrammiert hat, sondern sachen wie
Java:
...  7(  8 &* Ä ßß? ...
mit Bruchstücken von Sinn aus der JavaDoc (zumindest über die Konsole mit
Code:
System.out.println()
).

Das hat das Ziel, dass ich gern eine Art Mini-UML von einem Projekt erstellen will, wozu ich die Variablen etc. ja brauche. Ich weiß, da gibt es schon andere Programme, aber glaubt mir bitte einfach, dass das ganze seinen Sinn hat.
 
G

Gast2

Gast
Das schaut dann aber eher nach nem Encodingproblem aus. .java Dateien sind stinknormale Textdateien an.

Wenn du Variablen, Methodennamen etc. rauslesen willst dann solltest du dich nicht mit rausparsen rumplagen, das geht ziemlich sicher in die Hose. Wenns geht beschränk dich auf .class Dateien. Die kannst du per Classloader laden und über das Class Objekt die entsprechenden Infos rauslesen.
 
G

Gast2

Gast
Wie hast du denn versucht die java Datei einzulesen. Das sollte ohne Probleme nem BufferedReader und FileReader gehen.

Weißt du schon wie du die Datei dann parsen möchtest?
 

Bernstein

Mitglied
Ja, ich habe mir zumindest Gedanken dazu gemacht.
Mein Auslesen funktioniert in etwa so (Kurzform):
Java:
private void readOut(File parent){
   for(File a:parent.listFiles()){
      liesDieseDatei(a);
   }
}

private void liesDieseDatei(File file){
   FileReader fl = new Filereader(file);
   BufferedReader bf = new BufferedReader(fl){
      System.out.println(bf.readLine);
   }
}

Dabei liest er aber schon bei
Code:
.listFiles()
nur die .class-Dateien aus, nicht die .java. Und die .class Dateien zerhackt er dann natürlich völlig.
 
G

Gast2

Gast
Ich dachte du hast keine .class Dateien? .class Dateien sind auch keine Textdateien, die kannst du nicht mit nem BufferedReader einlesen.
 

Bernstein

Mitglied
Ja, ich hab schon bemerkt, dass
Code:
.listFiles()
irgendwie nicht das macht, was ich dachte. Wie kann ich denn sonst die .java-Dateien aus einem Ordner / einem Package holen?
 
G

Gast2

Gast
listFiles() auf dem Ordner aufrufen in dem die .java Dateien liegen und alles was nicht mit .java endet nicht beachten.
 

Bernstein

Mitglied
So hatte ich mir das gedacht, ja, aber
Code:
.listFiles()
gibt eben nicht die .java-Dateien aus wie es scheint... Das ist blöd! Wenn ich die Suche mit
Java:
if(file.getPath().contains(".java")){...}
else{System.out.println(file.getPath()+" ist keine Java-Datei")}

einschränke, dann kommen dort, wo doch noch Klassen liegen (aus Testpackages) Meldungen (... ist keine Java-Datei), aber nichts anderes... halt nur Ordner, die sind noch mal gesondert abgefangen.
 
G

Gast2

Gast
Auf was zeigt
Code:
parent
denn? Liegen in dem Verzeichnis überhaupt die Dateien drin die du haben möchtest?
 

Bernstein

Mitglied
Ja, ich rufe das ganze rekursiv auf von einem "Überordner" aus, und mit den Directories etc. passt auch alles soweit, sie werden angezeigt, ich hab das ganze über die Konsole laufen lassen, es gibt keine weiteren Probleme damit... aber auch bei ihnen: die .java-Dateien in den Ordnern werden nicht akzeptiert.
 
G

Gast2

Gast
Die Methode listFiles() läuft nicht rekursiv ab, das ist dir klar oder? Liegen in dem Pfad auf den parent zeigt die .java Dateien drin oder nicht?
 

Bernstein

Mitglied
Oh, ich glaub, ich bin doof... Ich hab da so den Verdacht, dass ich zwar in den "Überordner" reingehe, aber praktisch nur in den der Testklassen! Dort liegt ja die gleiche Struktur vor. Ich bin doof. Melde mich, wenn ich den Fehler gefunden haben sollte.
 

Bernstein

Mitglied
Nein, ich bin einfach davon ausgegangen, dass er von meinem Package erst mal hoch geht bis zum "Überordner" (nennen wir ihn Projekt), also zu dem src/main/java/com/Projekt, und dass ich von dort aus rekursiv nach unten arbeite... mach ich aber nicht, ich gehe stattdessen in src/test/java/com/Projekt, denn dort liegt ja meine Testklasse. Man, kein Wunder, dass das nicht klappt.
 

Bernstein

Mitglied
Ok, dann noch mal für Leute, die das hier gegoogelt haben: Wenn ihr flexibel eure Projekte nach .java-Dateien auslesen wollt, so achtet darauf, dass ihr von euren Ordner bis zur Wurzel (also zum Projekt-Namen) zurückverfolgt. Das ganze kann dann z.B. so aussehen:
Java:
private void getParamountParent(){
        while(parent.getParentFile().getParentFile().getPath().contains("meinProjekt")){
            parent=parent.getParentFile();
// das hier ist jetzt nur Kontrolle, wo ihr seid
            System.out.println("Parent ist "+parent.getPath()+ " mit Kindern ");
            for(String a:parent.list()){
                System.out.println("        "+a);
            }
        }
        parent=new File(parent.getPath()+"\\src"+*Aufbau ab Ordner....*);
        System.out.println("Parent ist "+parent.getPath());
// wieder Kontrolle
        for(String a:parent.list()){
                System.out.println("        "+a);
            }
    }
 
G

guest7272

Gast
Kleiner Tipp: schau dir mal JDT an. Man muss das Rad ja nicht jedes mal neu erfinden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Methoden Alle Methoden und Variablen aus Java-Dateien auslesen. Allgemeine Java-Themen 7
J Applet zum .java-Dateien auslesen/erstellen Allgemeine Java-Themen 5
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
T Meine Frage lautet wie ich 2 CSV Dateien miteinander in Java verbinde und Spalten die zueinander gehören durch den gleichen Key zusammen ausgebe? Allgemeine Java-Themen 5
I Java als exe veröffentlichen inkl. kompletter Dateien Allgemeine Java-Themen 4
J Java .jar Dateien zusammenführen Allgemeine Java-Themen 1
B Java - einlesen von Dateien und herausschneiden von XML Dokumenten Allgemeine Java-Themen 5
T Dateien zur Laufzeit in Java-Programm packen? Allgemeine Java-Themen 3
U Eclipse Java Programm beschädigt .tar.gz dateien beim Entpacken Allgemeine Java-Themen 7
R Java Dateien "verschlüsseln" Allgemeine Java-Themen 2
M Java Dateien verschieben Allgemeine Java-Themen 2
M Datentypen Jar-Dateien öffnen nicht mit Java Allgemeine Java-Themen 4
C Mit Java PDF Dateien bearbeiten. Allgemeine Java-Themen 2
C Java-Dateien in einheitlichen Zeichensatz umwandeln Allgemeine Java-Themen 10
U Wie kann mit einen Java Applet Dateien erstellen,verschieben und löschen? Allgemeine Java-Themen 9
T Mit Java auf Dateien zugreifen die auf einem Server liegen Allgemeine Java-Themen 5
C PDF Dateien mit Java drucken Allgemeine Java-Themen 2
D OpenOffice Calculator Dateien mit Java bearbeiten Allgemeine Java-Themen 3
R Java lesen von Dateien, Little-Endian Allgemeine Java-Themen 2
V Dateien mit Java öffnen Allgemeine Java-Themen 3
D Ich möchte meine *.java Dateien in Applets "umschreiben. Aber wie? Allgemeine Java-Themen 3
H aus Java-Programm Dateien öffnen Allgemeine Java-Themen 5
F Java ME Dateien schreiben Allgemeine Java-Themen 7
Developer_X Welche Dateien kann Java laden? Allgemeine Java-Themen 9
J mp4 dateien mit dem Java Media Framework abspielen. Allgemeine Java-Themen 2
F Java und .xm musik dateien Allgemeine Java-Themen 7
I Welche Möglichkeiten bietet Java um Records in Dateien zu sp Allgemeine Java-Themen 10
B Java CLASS Dateien dekompilieren? Allgemeine Java-Themen 2
G Virtuelle Dateien Java? Allgemeine Java-Themen 2
V Benutzerdefinierte Icons für jar-Dateien ab Java SE 6? Allgemeine Java-Themen 2
E Excel Dateien mit Java lesen? Allgemeine Java-Themen 4
S mit was java dateien öffnen Allgemeine Java-Themen 2
F Dateien lesen/schreiben - C++ <-> Java Allgemeine Java-Themen 8
S Problem beim Bearbeiten von Java-Dateien unter Linux Allgemeine Java-Themen 3
S 5. Programme, die EXE-Dateien aus JAVA-Anwendungen erstellen Allgemeine Java-Themen 4
H .java Dateien in anderem Package Allgemeine Java-Themen 8
TRunKX Gibt es ne fertige Java Funktion die Dateien vergleicht? Allgemeine Java-Themen 4
M Oeffnen des Standartprogramms fuer XML Dateien aus Java Allgemeine Java-Themen 4
G portierung einer DOS Anwendung mit dbase - Dateien nach JAVA Allgemeine Java-Themen 3
D Eigene Classes aus anderen .java-Dateien Allgemeine Java-Themen 2
R Windows-XP-Suchfunktion: Nach Text in Java-Dateien suchen Allgemeine Java-Themen 9
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben