# Link in einem ausgewählten Browser öffnen



## PrinzMartin (10. Dez 2009)

Moin Moin

ich habe schon herausgefunden, wie ich einen Link im Standartbrowser öffnen kann. Leider ist das nur das halbe Ziel. Ich hätte es gern, dass man per FileChooser seinen preferierten Browser aussuchen kann und dann die URI in dem ausgewählten Browser geöffnet wird.

Leider find ich da aktuell nix ... vllt bin auch googleblind geworden ;-) aber alle wollen nur im standartbrowser öffnen.

(hintergrund ist, dass meine freundin normal opera hat aber ihre mails immer im FF abruft da Opera das mit den zertifikaten nich hinbekommt (so oder so ähnlich sagte sie ;-)))

hoffe ihr könnt mir hier anhaltspunkte geben. (fertiger code ist auch erlaubt ;-))


€dit:
ich bin jetzt mal weiter in die Desktop.browse richtung gegangen aber da scheint man immer nur die standartanwendung nutzen zu können.

ichh ätte es aber gerne so, dass man wirklich das programm selbst auswählt mit dem man den link öffnen möchte. (das ganze soll aber plattformunabhängig bleiben wenn möglich).

Grüße
Martin


----------



## KrokoDiehl (11. Dez 2009)

Im simpelsten Fall:

```
Runtime.getRuntime.exec("C:/Programme/Firefox/firefox.exe "+link);
```
Irgendwo musst du dann halt auswählen lassen, welchen Browser der Benutzer will und diesen Pfad dann in den Aufruf stecken. Ich denke alle Browser unterstützen es, dass man die Ziel-URL als Parameter übergibt.
Der obige Code ist nur eine Vorlage, wie es gehen kann.


----------



## PrinzMartin (11. Dez 2009)

tatsächlich.... da hab ich mich wohl zusehr auf die eine richtung mit dem desktop konzentriert. ich dachte die ganze zeit ich könne dort eventuell den browser als parameter übergeben. So is natürlich wunderbar. Genau das was ich gesucht habe.

Danke sehr


----------



## SteeL1942 (11. Jun 2010)

Ich wollte sowas auch mal machen. So wie es da steht, hat es beimir nicht geklappt, aber google hat dann doch geholfen. Mein Problem ist aber, dass JAVA mit den Leerzeichen in meinem Datei-Pfad nicht klar kommt... Wie kann ich das problem lösen?


```
import java.io.IOException;
import java.lang.Runtime;
import java.text.ParseException;

public class LinkOeffner {

	public static void main(String args[]) throws IOException, ParseException
    {
        LinkOeffner m = new LinkOeffner("C:/Programme (x86)/Mozilla Firefox/firefox.exe");
        m.open("www.java-forum.org");
    }
	
	private String Pfad;
	
	public LinkOeffner(String pPfad)
	{
		Pfad = pPfad;
	}
	
	public void open(String pLink)
	{
		Runtime rt = Runtime.getRuntime ();

		try {
			rt.exec(Pfad+" "+pLink);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
}
```


----------



## Gastredner (11. Jun 2010)

Ich denke, das Problem liegt eher am Betriebssystem bzw. der Konsole statt an Java.
Du solltest deinen Pfad nochmals innerhalb des Strings in Anführungszeichen setzen, dann sollte die Windows-CMD damit klarkommen:

```
LinkOeffner m = new LinkOeffner("\"C:/Programme (x86)/Mozilla Firefox/firefox.exe\"");
```


----------



## SteeL1942 (11. Jun 2010)

Leider nicht. Nach wie vor der selbe Fehler....


java.io.IOException: Cannot run program ""C:/Programme": CreateProcess error=2, Das System kann die angegebene Datei nicht finden
	at java.lang.ProcessBuilder.start(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at LinkOeffner.open(LinkOeffner.java:25)
	at LinkOeffner.main(LinkOeffner.java:10)
Caused by: java.io.IOException: CreateProcess error=2, Das System kann die angegebene Datei nicht finden
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(Unknown Source)
	at java.lang.ProcessImpl.start(Unknown Source)
	... 6 more


----------



## Gastredner (11. Jun 2010)

Ich sehe auch gerade, dass du den Pfad in einer Mischung von Windows- und Unix-Schreibweise angibst - ich denke nicht, dass dies funktioniert. Ersetze jeden / durch \\, dann sollte es klappen.


----------



## SteeL1942 (11. Jun 2010)

```
LinkOeffner m = new LinkOeffner("\"C:\\Programme (x86)\\Mozilla Firefox\\firefox.exe\"");
```

damit erhalte ich diesen fehler:

java.io.IOException: Cannot run program ""C:\Programme": CreateProcess error=2, Das System kann die angegebene Datei nicht finden
	at java.lang.ProcessBuilder.start(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at LinkOeffner.open(LinkOeffner.java:25)
	at LinkOeffner.main(LinkOeffner.java:10)
Caused by: java.io.IOException: CreateProcess error=2, Das System kann die angegebene Datei nicht finden
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(Unknown Source)
	at java.lang.ProcessImpl.start(Unknown Source)
	... 6 more




```
LinkOeffner m = new LinkOeffner("C:\\Programme (x86)\\Mozilla Firefox\\firefox.exe");
```

und damit diesen fehler:

java.io.IOException: Cannot run program "C:\Programme": CreateProcess error=5, Zugriff verweigert
	at java.lang.ProcessBuilder.start(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at LinkOeffner.open(LinkOeffner.java:25)
	at LinkOeffner.main(LinkOeffner.java:10)
Caused by: java.io.IOException: CreateProcess error=5, Zugriff verweigert
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(Unknown Source)
	at java.lang.ProcessImpl.start(Unknown Source)
	... 6 more


----------



## Gastredner (11. Jun 2010)

Okay, eines würde mir noch einfallen:
Die deutschen Ordnernamen sind unter Vista/Win7 keine realen Ordner, sondern nur Links auf die eigentlichen Programmordner mit englischen Namen. Versuche es also einmal mit "Program Files (x86)" statt mit "Programme". Das hat mir einmal bei einem ähnlichen Problem geholfen.


----------



## SteeL1942 (11. Jun 2010)

das war das problem... Danke!

hab es jetzt mit


```
LinkOeffner m = new LinkOeffner("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
```

zum laufen bekommen. Danke nochmal


----------



## was.gibts.noch (27. Aug 2010)

Hallo
Das Problem aus dem ersten Beitrag habe ich auch so ähnlich.
Ich möchte Links die ich im google chrome klicke, im firefox(standard browser) angezeigt bekommen.

wie kann mir dieses java programm dabei helfen?
und wo baue ich das ein?
ich muss dann doch auch die url übergeben.


----------

