HelpSet wird nicht gefunden

kodela

Bekanntes Mitglied
Hallo,

für eine Anwendung, die seit Jahren problemlos läuft und mit diesem Code:
Java:
        URL url;
        try {
            ClassLoader cl = StradokuApp.class.getClassLoader();
            url = HelpSet.findHelpSet(cl, "jhelpset.hs");
            help = new JHelp(new HelpSet(cl, url));
        } catch (HeadlessException | HelpSetException | BadIDException ex) {
            JOptionPane.showMessageDialog(null, ex.toString(), "Fehlermeldung", 1);
            return;
        }
bisher immer das Helpset fand, habe ich jetzt ein Problem, das Helpset wird nicht mehr gefunden.
Was kann hiefür ursächlich sein?

Gruß, kodela
 
Also die Fehlerbeschreibung ist etwas missverständlich. Wenn das Helpset nicht gefunden wird, dann meint das, dass der Aufruf HelpSet.findHelpSet(cl, "jhelpset.hs"); das jhelpset.hs nicht finden/laden kann?

Hier wäre dann die Frage: Wo im Classpath befindet sich diese Datei? Das jhelpset.hs muss ja irgendwo vorhanden sein. Da ein ClassLoader als Parameter übergeben wird, wird die Datei vermutlich auf dem dem Classpath gesucht. Und das sollte dann auch dort liegen, wo die StradokuApp Klasse liegt (Das wäre aber nur wirklich wichtig, wenn Du eine Laufzeitumgebung mit mehreren ClassLoader Instanzen hättest.

Das wäre dann also eine Analyse der Laufzeitumgebung um zu schauen, ob alles da ist, was da sein sollte.

Aber unabhängig davon wäre die Frage interessant: Was wurde von euch geändert?
 
Dann muss ich das Problem genauer darstellen. Im Anhang ist die ganze Klasse. Die Hilfe-Datei selbst ist mit dem XMLmind_XML_Editor erstellt und DobuDish erstellt daraus in seinem Ordner documents einen symbolischen Ordner StradokuHelp. Hier die Kommandozeile dafür:

MKLINK /J D:\Tools\DobuDish\documents\StradokuHelp D:\Projekte\JAVA\JProjekte\Stradoku\StradokuHelp

Ziel dieses symbolischhen Ordners ist der Projektordner D:\Projekte\JAVA\JProjekte\Stradoku\StradokuHelp

Wird nun in D:\Tools\DobuDish\
die StradokuHlp.bat aufgerufen, generiert diese in Stradoku\output\javahelp die drei Dateien hsviewer.jar, jh.jar und StradokuHelp.jar. Letztere ist aus der über XMLmind erstellten Hilfedatei entstanden.

Viel mehr fällt mir nicht ein, was ich noch beschreiben könnte. Falls noch etwas fehlt, berichte ich gerne nach.

Auf jeden Fall hat sich durch meine Arbeit für diesen Bericht etwas verändert. Am Anfang hieß es noch, das HelpSet würde nicht gefunden, jetzt heißt es: javax.help.HelpSetException: Could not parse Got an IOException (null) Parsing failed for null (Siehe Screenshot 2).

Na ja, die Frage ob was verändert wurde. Bewusst nicht. Ich habe meinen Code an jemand weitergegeben, ich selbst habe meine Arbeit an diesem Projekt eigentlich abgeschloss. Mein Nachfolger hat bereits erreicht, dass das Programm nun auch unter Linux und mac arbeitet und ja, ich habe mir seine Version heruntergeladen und ausprobiert. Es funktioniert auch mit seiner Version nicht. Mit Sicherheit hat die Hilfe vor einer Woche keine Probleme gemacht und ich bin mir eigentlich sicher, auch nichts gemacht zu haben.

Gruß, kodela
 

Anhänge

  • HilfeDialog.txt
    HilfeDialog.txt
    1,9 KB · Aufrufe: 0
  • 1738081723368.png
    1738081723368.png
    25,2 KB · Aufrufe: 0
Zuletzt bearbeitet:
Die jar Dateien sind unter dem Strich nur zip Dateien. Schau da doch einmal rein, um zu sehen, ob die Datei jhelpset.hs in einer der jar Dateien enthalten ist.

Du könntest uns auch die StradokuHlp.bat Datei zeigen. Dann könnten wir ggf. sehen, wie die jar Dateien erzeugt werden.
 
Klar kann ich das. Es ist im Grunde nur ein Kommando (generator.bat StradokuHelp javahelp), der Rest ist Kommentar von mir, damit ich später nachlesen kann, wie vorzugehen ist. Installiert habe ich JavaHelp 2017 und für mein Sudoku-Programm 2011 und nie hatte ich damit Schwierigkeiten.

generator.bat liegt im selben Verzeichnis und ist dann schon etwas umfangreicher. Auch sie füge ich als Anhang bei.

Ich habe in letzter Zeit überwiegen mit NetBeans 12.0 gearbeitet und bin jetzt wieder zurück zur Version 8.2., mit der ich nur ein Problem beim Compilieren habe. Hier der die Meldung zu einem Compiliervorgang:
Code:
ant -f D:\\Projekte\\JAVA\\JProjekte\\Stradoku_def -Dnb.internal.action.name=rebuild clean jar
init:
deps-clean:
Updating property file: D:\Projekte\JAVA\JProjekte\Stradoku_def\build\built-clean.properties
Deleting directory D:\Projekte\JAVA\JProjekte\Stradoku_def\build
clean:
init:
deps-jar:
Created dir: D:\Projekte\JAVA\JProjekte\Stradoku_def\build
Updating property file: D:\Projekte\JAVA\JProjekte\Stradoku_def\build\built-jar.properties
Created dir: D:\Projekte\JAVA\JProjekte\Stradoku_def\build\classes
Created dir: D:\Projekte\JAVA\JProjekte\Stradoku_def\build\empty
Created dir: D:\Projekte\JAVA\JProjekte\Stradoku_def\build\generated-sources\ap-source-output
Compiling 42 source files to D:\Projekte\JAVA\JProjekte\Stradoku_def\build\classes
Copying 43 files to D:\Projekte\JAVA\JProjekte\Stradoku_def\build\classes
compile:
Created dir: D:\Projekte\JAVA\JProjekte\Stradoku_def\dist
Copying 1 file to D:\Projekte\JAVA\JProjekte\Stradoku_def\build
Not copying library D:\Projekte\JAVA\JProjekte\Stradoku\StradokuHelp\lib , it's a directory.
Not copying library D:\Projekte\JAVA\JProjekte\Stradoku\StradokuHelp\output\javahelp , it's a directory.
Copy libraries to D:\Projekte\JAVA\JProjekte\Stradoku_def\dist\lib.
Building jar: D:\Projekte\JAVA\JProjekte\Stradoku_def\dist\kodelasStradoku.jar
To run this application from the command line without Ant, try:
java -jar "D:\Projekte\JAVA\JProjekte\Stradoku_def\dist\kodelasStradoku.jar"
deploy:
jar:
BUILD SUCCESSFUL (total time: 5 seconds)

Gruß und danke, kodela
 

Anhänge

Zuletzt bearbeitet:
Hallo,

im Anhang ist eine Gegenüberstellung des Compilierungsverlaufs durch NetBeans 8.2 für die beiden sehr ähnlichen Projekte Sudoku und Stradoku. Vielleicht ist diese für Ursachhensuche hilfreich.
 

Anhänge

  • Gegenueberstellung.png
    Gegenueberstellung.png
    55,2 KB · Aufrufe: 0
Hallo,

ich habe eine weitere, vielversprechende Gegenüberstellung.

Im help Ordner 'input' von Sudoko gibt es neben dem Ordner 'resource' und den beiden xml-Dateien (Inhalt der Hilfe) noch die symbolische Datei 'kodekuHlpS', eine Verknüofung mit D:\Tools\XMLmind_XML_Editor\bin\xxe.exe E:\JAVA\JProjekte\kodeku\kodekuHlp\input\kodekuHlp.xml (siehe Anhang).

Im entsprechenden Ordner von Stradoku gibt es keine solche Verknüpfung, sondern stattdessen die Datei 'book-include.xml. Hier deren Inhalt:

Java:
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
          "http://www.docbook.org/xml/4.5/docbookx.dtd"
  [
    <!ENTITY % global.entities SYSTEM "../../../system/custom-xsl/global-entities.xml">
    %global.entities;

    <!ENTITY % entities SYSTEM "../custom-cfg/local-entities.xml">
    %entities;
  ]
>

<ximy:includelist xmlns:ximy="http://www.agynamix.de/XincludeExtension">

<chapter>
  <title>An included Chapter</title>

  <sect1>
    <title>First Section</title>[/SPOILER]

    <para>
      This text comes from an xincluded document.
    </para>

  </sect1>

</chapter>

</ximy:includelist>

Wie und warum das so gekommen ist wie es ist, kann ich mir noch nicht erklären.
 

Anhänge

  • Gegenueberstellung-Sud-Stra.png
    Gegenueberstellung-Sud-Stra.png
    73,4 KB · Aufrufe: 0
Zuletzt bearbeitet:
Hallo,

ich habe festgestellt, dass bei mir DobuDish "zerschossen" ist und ich habe auch einen Verdacht. Mein eigenes Programm, dessen Code ich weitergegeben habe, der Empfänger wollte es auch für Linux und Mac so einrichten, dass wie bei Windows alles funktioniert. Ein Test, ob es auch noch unter Windows läuft, ergab, dass die Hilfe nicht mehr angezeigt wurde. Jetzt installierte ich das Projekt auf NetBeans, um zu sehen, warum das so ist, fand aber nichts, was mir verdächtig vorgekommen wäre. Und als ich dann mein Projekt prüfte, kam es zu diesem Problem.
Das ist die Ursache:

D:\Tools\DobuDish\system\templates\javahelp-tpl-dir\javahelp-cfg not found.

Danke für den Versuch, mir zu helfen,

kodela
 

Zurück
Oben