# SWT - Browser.setUrl(url) geht nicht :-(



## ich_wills_wissen (28. Sep 2006)

Hi zusammen,

habe gerade folgendes Problem, zu dem ich hier im Forum nicht wirklich eine Lösung finden konnte:

In meiner Anwendung (Eclipse-Plugin) nutze ich einen Browser (org.eclipse.swt.browser.Browser) mit dem ich eine
lokale html-Seite (welche mit dem Plugin ausgeliefert werden soll) anzeigen lassen will. 


```
Browser browser = new Browser(meinComposite, SWT.NONE);
		   browser.setUrl("dieSeite.html");
```

Das Problem ist jetzt, daß die Seite nicht gefunden wird.
Wo muss ich die html-Datei ablegen, damit der Browser das Teil findet bzw. was muss
ich beim Pfad angeben ? :bahnhof: 
Kann ich die html-Datei in das selbe Package legen wie die Klasse, die den Browser enthält ?

Beispiel:  
mein.Package.meineKlasse.java
mein.Package.dieSeite.html

Habe auchschon probiert die html-Datei außerhalb des Package abzulegen, leider ohne Erfolg  
Die html-Datei ist natürlich in den build.properties nicht vergessen worden (angehakt im Binary-build)

Hat jemand eine Idee ?   ???:L
Sorry, ich weiß, daß das Problem wahrscheinlich ultra-trivial ist, aber ich bekomme es einfach nicht hin !


Gruß,


ich_wills_wissen   :###


----------



## Xandro (28. Sep 2006)

Auf die Schnelle würde ich sagen, dass Du das lokale Verzeichnis mitliefern musst:


```
browser.setURL(System.getProperty("user.dir") + "\\dieSeite.html"); // sofern die HTML-Datei im Projektordner liegt
```

Aber der Verzeichnis-Pfad muss mitgeliefert werden, nur "dieSeite.html" reicht auf jeden Fall nicht aus.


----------



## ich_wills_wissen (28. Sep 2006)

Hallo Xandro,

danke für Deine schnelle Antwort 

Leider hat auch das nicht funktioniert.. 
um ganz sicher zu gehen habe ich die html-Datei nun 3 mal innerhalb meines Projektes kopiert
(einmal auf Projekt-ebene, im src-Ordner und einmal im Package), leider ohne Erfolg 


```
// funktioniert leider nicht
browser.setUrl(System.getProperty("user.dir") + "\\video.html");

//funktioniert leider auch nicht
browser.setUrl("\\video.html");

//ebenso das hier
browser.setUrl("video.html");

//und das hier
browser.setUrl("..\\video.html");
browser.setUrl("..\\..\\video.html");
```


Noch jemand eine Idee ?  ???:L


----------



## KSG9|sebastian (29. Sep 2006)

```
// falls die Methode static ist:
// URL url = meineKlasse.class.getResource("testfile.html");
URL url = this.getResource("testfile.html");
browser.setUrl(url.toExternalForm());
```


----------



## ich_wills_wissen (29. Sep 2006)

so klappt es leider auch nicht 

Bin jetzt den umständlichen Weg über den Classloader gegangen, d.h.
ich lese die html-Datei über einen InputStreamReader (->BufferedReader)
Zeile für zeile ein und schreibe alles in einen String.. den übergebe ich dann 
mit setText dem Browser..

Leider stehe ich jetzt vor dem nächsten Problem:

In dieser html-Seite ist ein Applet eingebettet, daß sich in meinem Plugin-projekt befindet..
das Problem ist jetzt wieder der Pfad.. ich kann nicht auf das Applet zugreifen.


```
VideoBasis.class.getClassLoader().getResource("Applet1.class").getPath()
```

liefert mir als Pfad:



> /Applet1.class



d.h.


```
browser.setText("<html><head></head><body>"+
		"<APPLET code='"+VideoBasis.class.getClassLoader().getResource("Applet1.class").getPath()+"' codebase='.' width='320'"+
		            "height='240'>" +
		            "Applets werden von diesem Browser leider nicht unterstützt.</APPLET></body></html>");
```

müsste eigentlich das Applet finden.. tut es aber irgendwie nicht...  :bahnhof:  :cry: 

So langsam wird es echt frustrierend, ich sitze jetzt schon mehrere Tage an dem Sch*** 


Für jeden Hinweis dankbar...


ich_wills_wissen    :###


----------



## KSG9|sebastian (29. Sep 2006)

Dann schreib mal die URL in nen Pfad um.
Aber eigentlich müsste das mit file://abc.. gehen...


----------



## ich_wills_wissen (29. Sep 2006)

Hallo KSG9|sebastian,

danke nochmal für die Hilfe 

also wenn ich den Pfad direkt angebe funktioniert es (also mit einem file:\\ davor) 
Jetzt liegt das Applet aber mit in dem Package, in dem auch mein Eclipse-Plugin
liegt (welches das Applet aufruft). Über den Classloader kann ich mit 


```
meineKlasse.class.getClassLoader().getResource("Applet1.class").getPath()
```

den Pfad innerhalb des Package zum Applet herausbekommen. Was mir jetzt noch fehlt ist der
Pfad zu dem Package.. da muss ich noch grübeln wie ich den rausbekomme  ???:L


----------

