Anzeigen von HTML Seiten in einem Jar

helgeh

helgeh

Aktives Mitglied
Thread Starter
Dabei seit
18.11.2004
Beiträge
533
Reaktionspunkte
12
Hallo!

Ich habe meine Hilfeseiten als HTML-Seiten abgelegt.

Code:
		final Browser browser = new Browser(container, SWT.NONE);

		URL url = this.getClass().getResource("/help/about.html");

		System.out.println("URL String is: " + url.toString());
		System.out.println("URL Path is: " + url.getPath());
	
		browser.setUrl(url.getPath());

Wenn ich das ganze in Eclipse ablaufen lasse, ist das kein Problem. Die Seiten werden im Browser angezeigt. Baue ich allerdings ein JAR, dann liegen die HTML-Seiten in dem JAR.
Und auf Seiten aus einem JAR kann der Browser nicht zugreifen:

Code:
file:///Users/helge/Documents/Workspace/BBES/BBES_fat.jar!/help/about.html

Kann man das Problem irgendwie umgehen?

helgeh
 
Man koennte es etwa so in der Art machen:

Code:
JarFile jarFile = new JarFile("ein.jar");
Enumeration entries = jarFile.entries();
while (entries.hasMoreElements()) {
  JarEntry e = entries.nextElement();
  if (e.getName().endsWith("about.html")) {
    InputStream inputStream = jarFile.getInputStream(e);
    // dann den Inhalt auf einen String einlesen und 
    // etwa ueber browser.setText(inhalt) anzeigen
  }
}
 
Danke für die Antwort. Aber sieht nicht so schön aus.
Aber mit browser.setText() ist mir erstmal geholfen. Da werde ich dann erstmal den Inhalt einfach in einen String packen.
 
Wenn das JAR zur Laufzeit im Classpath ist, kannst Du eine Ressource mit

Code:
this.getClass().getClassLoader().getResource(fileName);

oder

Code:
// Java Web Start proof
Thread.currentThread().getContextClassLoader().getResource(fileName);

laden.
 
Das ist mir schon klar. Ich hatte allerdings meine Hilfetexte in HTML-Seiten defniert, die auch Grafiken einbinden. Hier kommt man schlißlich ins schleudern. Denn die eingebundenen Seiten werden so nicht gefunden.

Ich habe mich schließlich entschieden, die Hilfeseiten mit Docbook zu definieren und dann daraus JavaHelp zu generieren. Is bedeutend komfortabler.
 
ich glaube, es muss heißen:
jar:file:///Users/helge/Documents/Workspace/BBES/BBES_fat.jar!/help/about.html
 
Zurück
Oben Unten