diff --git a/docs/betrieb.md b/docs/betrieb.md index 48ac901..1f5f375 100644 --- a/docs/betrieb.md +++ b/docs/betrieb.md @@ -550,6 +550,36 @@ Installationsverzeichnis ab. **Der Betreiber muss diese Beispieldatei manuell na Windows-SmartScreen-Warnung, die durch „Weitere Informationen → Trotzdem ausführen" bestätigt werden muss. Code-Signing ist für spätere Ausbaustufen vorgesehen. +**Empfehlung für Prompt- und Konfigurationspfade im MSI-Betrieb:** + +Für den MSI-Betrieb (Startmenü, Task Scheduler) wird **empfohlen**, +`prompt.template.file` und `sqlite.file` als **absolute Pfade** zu konfigurieren +oder auf `%APPDATA%`- bzw. `%ProgramData%`-Verzeichnisse zu zeigen. +Relative Pfade beziehen sich auf das Arbeitsverzeichnis, das je nach Startart variiert +(siehe Abschnitt „Prompt-Konfiguration"). + +### MSI-Release-Checkliste + +Die folgende Checkliste ist vor jeder MSI-Auslieferung manuell abzuarbeiten. + +- [ ] Neuinstallation auf sauberer Windows-Umgebung ohne vorinstalliertes Java +- [ ] Installation in Installationspfad **mit Leerzeichen** (z. B. `C:\Program Files\PDF KI Renamer\`) +- [ ] Upgrade von installiertem Vorgänger-MSI (kein manuelles Deinstallieren) +- [ ] GUI-Start über Startmenü-Eintrag +- [ ] Headless-Start über `PDF-KI-Renamer.bat` im Windows Task Scheduler +- [ ] Desktop-Shortcut vorhanden oder Einschränkung hier dokumentiert +- [ ] App-Version `3.0.x` im Windows-Installer sichtbar („Programme und Features") +- [ ] Deinstallation sauber – Konfiguration unter `C:\ProgramData\PDF KI Renamer\` bleibt erhalten +- [ ] SmartScreen-Warnung erscheint und wird durch „Weitere Informationen → Trotzdem ausführen" bestätigt +- [ ] BAT-Dateien funktionieren bei Installationspfad mit Leerzeichen +- [ ] Anwendungsstart **ohne Entwicklungs-JDK** erfolgreich: GUI-Start, PDF laden und rendern, Verarbeitungslauf starten, Verlaufs-Tab öffnen (Verifikation der `addModules`-Liste) + +> **Hinweis zur JDK-freien Laufzeit-Verifikation:** Nur ein erfolgreicher Test +> auf einem System ohne installiertes JDK bestätigt die Vollständigkeit der +> `addModules`-Liste in `pdf-umbenenner-packaging/pom.xml`. Die aktuelle Liste +> wurde per `jdeps --print-module-deps --ignore-missing-deps` ermittelt; +> vollständige Ausgabe in `pdf-umbenenner-packaging/jdeps-output.txt`. + ### Build-Kommandos **Vollständiger Reactor-Build** (alle Module, Tests, Packaging): diff --git a/pdf-umbenenner-packaging/jdeps-output.txt b/pdf-umbenenner-packaging/jdeps-output.txt new file mode 100644 index 0000000..d92803d --- /dev/null +++ b/pdf-umbenenner-packaging/jdeps-output.txt @@ -0,0 +1,23 @@ +# jdeps-Ausgabe fuer das Shade-JAR +# Erstellt: 2026-04-30 +# Befehl: +# jdeps --print-module-deps --ignore-missing-deps \ +# pdf-umbenenner-bootstrap-0.0.1-SNAPSHOT.jar +# +# Ausgabe (einzeilig, Trennzeichen Komma): +java.base,java.compiler,java.management,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.sql,jdk.jfr,jdk.unsupported,jdk.unsupported.desktop +# +# Neu gegenueber vorheriger addModules-Liste: +# java.prefs – hinzugefuegt (von jdeps erkannt) +# jdk.unsupported.desktop – hinzugefuegt (von jdeps erkannt) +# +# Manuell beibehalten (nicht von jdeps --ignore-missing-deps gemeldet, +# aber zur Laufzeit reflektiv erforderlich): +# java.desktop – JavaFX-Grafiksubsystem (ohne explizite statische Abhaengigkeit) +# java.logging – Log4j2-JUL-Bridge (reflektiver Zugriff zur Laufzeit) +# java.xml – FXML/XML-Parsing (reflektiver Zugriff zur Laufzeit) +# +# HINWEIS: Die Laufzeit-Verifikation ohne Entwicklungs-JDK ist zwingend erforderlich +# (GUI-Start, PDF laden und rendern, Verarbeitungslauf, Verlaufs-Tab oeffnen). +# Nur ein erfolgreicher Test auf einem System ohne JDK bestaetigt die Vollstaendigkeit +# der Modulliste. Anleitung: betrieb.md, Abschnitt "MSI-Release-Checkliste". diff --git a/pdf-umbenenner-packaging/pom.xml b/pdf-umbenenner-packaging/pom.xml index c8ce9b5..5231d76 100644 --- a/pdf-umbenenner-packaging/pom.xml +++ b/pdf-umbenenner-packaging/pom.xml @@ -67,10 +67,13 @@ org.panteleyev @@ -93,14 +96,31 @@ ${project.build.directory}/dist ${project.basedir}/src/main/packaging/icon.ico src/main/packaging/application.example.properties + src/main/packaging/PDF-KI-Renamer.bat + src/main/packaging/PDF-KI-Renamer-GUI.bat + java.base java.compiler @@ -109,12 +129,14 @@ java.management java.naming java.net.http + java.prefs java.rmi java.scripting java.sql java.xml jdk.jfr jdk.unsupported + jdk.unsupported.desktop -Xms64m @@ -126,6 +148,13 @@ PDF KI Renamer true false + + EA8D0149-1401-4D3D-A98D-A2B98DAE5495 PDF KI Renamer @@ -133,8 +162,11 @@ org.apache.maven.plugins diff --git a/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer-GUI.bat b/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer-GUI.bat index dad258f..1ecefb9 100644 --- a/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer-GUI.bat +++ b/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer-GUI.bat @@ -1,3 +1,3 @@ @echo off chcp 65001 >nul -"%~dp0PDF-KI-Renamer\PDF-KI-Renamer.exe" %* +start "" "%~dp0PDF-KI-Renamer.exe" %* diff --git a/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer.bat b/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer.bat index 7c90903..0f321e9 100644 --- a/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer.bat +++ b/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer.bat @@ -1,3 +1,3 @@ @echo off chcp 65001 >nul -"%~dp0PDF-KI-Renamer\PDF-KI-Renamer.exe" --headless %* +"%~dp0PDF-KI-Renamer.exe" --headless %* diff --git a/pdf-umbenenner-packaging/src/main/packaging/README-icon.md b/pdf-umbenenner-packaging/src/main/packaging/README-icon.md index 2e67193..3f9717b 100644 --- a/pdf-umbenenner-packaging/src/main/packaging/README-icon.md +++ b/pdf-umbenenner-packaging/src/main/packaging/README-icon.md @@ -1,8 +1,21 @@ -# Icon-Platzhalter +# Anwendungsicon -Die Datei `icon.ico` in diesem Verzeichnis ist ein **Platzhalter** (1x1 Pixel, valides `.ico`-Format). - -**Vor dem Release durch echtes Icon ersetzen.** +Die Datei `icon.ico` in diesem Verzeichnis enthaelt das Anwendungsicon fuer den +Windows-Installer und die installierte EXE. Das Icon wird beim Ausfuehren von `mvn clean package -P release` durch das `jpackage`-Plugin in die erzeugte Windows-EXE eingebettet. + +## Anforderungen an das Icon + +- Format: `.ico` +- Mindestgroesse: 256 x 256 Pixel +- Empfohlen: mehrere eingebettete Groessen (16, 32, 48, 64, 128, 256 px), + damit Windows in jeder Anzeigegroeße (Taskleiste, Explorer, Desktop-Shortcut) + eine passende Variante verwenden kann. + +## Hinweis zum aktuellen Stand + +Die Datei `icon.ico` hat eine Groesse von ca. 127 KB und enthaelt ein vollstaendiges +Anwendungsicon. Vor einem oeffentlichen Release sollte geprueft werden, ob das Icon +den aktuellen Gestaltungsrichtlinien und der gewuenschten Branding-Erscheinung entspricht.