readSystemSoftware lists a PC's or notebook's installed applications with the settings the model needs: server applications switched on and their port, the generic client's target, DNS recursion, web server virtual hosts, Gnutella's peer limit and the personal firewall (on by default, unlike a router's). Defaults the file leaves out are measured in Java. All 23 corpus files match Java. Two examples install an application of their own (Accumulator, Broadcast), compiled into projekt/anwendungen; it is left out with a warning, as this reader cannot run Java classes. It must survive a save. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Java-Orakel
Java-Filius selbst liest den Korpus (corpus/) und schreibt, was es gefunden
hat, nach corpus/corpus.java.json. Java ist der Schiedsrichter für das
Dateiformat — der Swift-Leser verliert in 10 von 23 Dateien Geräte (Plan
§13, M2).
npm run oracle:java # = tools/java-oracle/run.sh
Braucht JDK 17+, Maven und xvfb-run. Filius öffnet beim Laden sein
Hauptfenster (Information.reset → JMainFrame), deshalb läuft es an einem
virtuellen Bildschirm statt „headless".
- Gelesen wird über Filius' eigene, private Lademethode
SzenarioVerwaltung.netzwerkLaden(per Reflection) — Javas Weg, kein Nachbau. - Stand:
gitlab.com/filius1/filius@6640354(2.14.0), wird beim ersten Lauf nach.upstream/geholt und gebaut. - Gewürfeltes: Was nicht in der Datei steht, würfelt Filius zum Teil
(MAC-Adressen, die SSID eines Switches). Jede Datei wird deshalb zweimal
geladen; jeder Wert, der sich zwischen beiden Läufen unterscheidet,
erscheint als
null. Zwei Läufe des Werkzeugs sind byte-gleich. (Bis 29.09.2026 suchte es die MAC im Dateitext und hielt dabei acht kleingeschriebene für gewürfelt.) - Bisher ausgelesen: Geräte (Klasse, Name, Beschriftung, Position,
Schnittstellen, bei Rechner/Notebook
useIPAsName/useMACAsName), untersystemSSID, Lernzeit des Switches, RIP, manuelle Routen, die Firewall von Router und Heimrouter, DHCP-Client und -Server, die statische NAT-Tabelle des Heimrouters, die Verbindung eines Modems und das Dateisystem (Inhalte als Länge und SHA-256, damit die Referenz klein bleibt; die Dateien von Router und Heimrouter erzeugt Javas Konstruktor aus eigenen Vorlagen, sie stehen nicht in der Datei) und die installierten Programme eines Rechners mit ihren Einstellungen (Klassen, die Filius nicht mitbringt — eigene Anwendungen im Archiv unterprojekt/anwendungen— fehlen, weil das Werkzeug nurkonfiguration.xmllädt); Kabel (Enden als Gerät/Schnittstelle), Doku-Elemente. Systemsoftware, Dateisysteme und Anwendungen folgen schrittweise.
Getter-Standardwerte
XMLEncoder teilt gleiche Integer/Boolean-Objekte. Ein Wert, der einmal als
Ergebnis eines Getters geschrieben wurde (<void id="Integer0" property="iconTextGap"/>), taucht später nur noch als Verweis auf — etwa als
x-Koordinate eines Geräts. Daran scheitert der Swift-Leser (Plan §13, M2).
GetterDefaults erzeugt die betroffenen Klassen wie XMLDecoder (ohne
Argumente) und ruft den Getter auf; das Ergebnis steht in
packages/fls/src/javaDefaults.json. Gemessen, nicht geraten: Filius' Knopf
setzt verticalTextPosition auf 3 (BOTTOM), nicht auf Swings 0 (CENTER).
Dasselbe gilt für statische Konstanten: Die erste 0 einer Datei kann als
<object class="javax.swing.SwingConstants" field="CENTER"/> stehen, und jede
spätere 0 — etwa die Rot-, Grün- und Blauwerte einer schwarzen Doku-Farbe —
verweist darauf. Schreibweise im Aufruf: klasse::FELD, Ergebnis
"SwingConstants.CENTER": 0.
IP.ipCheck
Java-Filius schickt jede IP-Adresse und Maske beim Laden durch
IP.ipCheck. IpCheckCases ruft es für jede Zeile von
packages/fls/test/ip-check.cases.txt auf (ASCII, Nicht-ASCII als
\uXXXX) und schreibt ip-check.java.json. Gemessen: leere Abschnitte
zählen nicht (10..0.0.1), Vorzeichen und führende Nullen gehen, ebenso
Ziffern jeder Schrift in der BMP (Thai, Devanagari, Vollbreite) — aber kein
Leerzeichen und kein 𝟏 (Ersatzpaar).