Problem mit Webseiten-Aufruf mit "ProcessBuilder" oder "Runtime.getRuntime().exec"

vfl_freak

Premium-User
Hallo,

seit einiger Zeit funktioniert in meiner Applikation der Aufruf von GoogleMaps (sowohl mit "ProcessBuilder" als auch "Runtime.getRuntime().exec") nicht mehr.

Ich habe folgende actionPerformed-Methode:
Java:
public void btnGoogleMaps_actionPerformed( ActionEvent e ) 
  {
      String sStrasse = AktuellerAlarm.getInstance().getStrasse();
      String sPLZ = AktuellerAlarm.getInstance().getPLZ();
      String sOrt = AktuellerAlarm.getInstance().getOrtVN();
      String sURL = "http://maps.google.de/maps?q=" + sStrasse + "+" + sPLZ + "+" + sOrt;
      
      String commandline = "iexplore.exe \"" + sURL + "\"";
      
      try
      {
          procIExplorerRunning = Runtime.getRuntime().exec( commandline );
      }
      catch( IOException ex )
      {
          ex.printStackTrace();
          JOptionPane.showMessageDialog( this, "<HTML><FONT size = 4><b>Aufruf des IE fehlgeschlagen !!</b></FONT></HTML>\n\n", "Hinweis", JOptionPane.INFORMATION_MESSAGE, null );
      }
  } // btnGoogleMaps_actionPerformed
Ich bin mir sehr sicher, dass dieser Aufruf früher (vor Monaten/Jahren) schon funktioniert hat.
Wenn er jetzt ausgeführt wird, kommt nur die Meldung, die ich als Screenshot angehängt habe und die ich mir
nicht erklären. Sie kommt direkt vom IE - wenn ich sie dann wegklicke, wird zumindest der Browser geöffnet, aber halt
mit der Startseite .....

Ich habe jetzt heute vormittag die verschiedensten Tipps, die ich im Web fand, ausprobiert, aber allesamt ohne Erfolg!
Auch alternative Versuche mit dem "processBuilder" haben nicht gepklappt.
Selbst ein Aufruf einer einfachen Seit wie "www.aldi.de" geht mit der gleichen Meldung schief.
Wenn ich versuche, nur den IE zu starten, dann klappt dies problemlos.

Die betroffenen Rechner sind allesamt XP 32bit Systeme, aber auch auf einem Win7 x64 System konnte ich es beobachten.
Es ist jeweils Java7 installiert.

Irgendwie scheint ja was nach dem doppelten "/" schief zu laufen ... nur was ****
Mir sind im Moment absolut die Ideen ausgegangen, wie ich das lösen kann :rolleyes:

Gruß
Klaus

[EDIT]
BTW: auf "sURL" steht natürlich immer der richtige Aufruf von GoogleMaps (oder halt der Aldi-Seite ;) ), da deren händische Eingabe im Browser problemlos klappt !!
[/EDIT]
 

Anhänge

  • iexplorer.jpg
    iexplorer.jpg
    18,9 KB · Aufrufe: 14
Zuletzt bearbeitet:
So, ein Arbeitskollege hat eben die Lösung gefunden und ich will sie hier schnell posten.
Es ist jetzt grundlegend über der Klasse "java.awt.Desktop" gelöst worden.
Zudem mussten in den Strings mit der Strasse und dem Ort eventuelle Leerzeichen durch ein '+' ersetzt werden
Java:
  public void btnGoogleMaps_actionPerformed( ActionEvent e ) 
  {
	  String sStrasse = AktuellerAlarm.getInstance().getStrasse();
	  String sStrasseNeu = sStrasse.replaceAll( " ", "+" ); // eventuelle Leerzeichen ersetzen
	  String sPLZ = AktuellerAlarm.getInstance().getPLZ();
	  String sOrt = AktuellerAlarm.getInstance().getOrtVN();
	  String sOrtNeu = sOrt.replaceAll( " ", "+" ); // eventuelle Leerzeichen ersetzen
	  String sURL = "http://maps.google.de/maps?q=" + sStrasseNeu + "+" + sPLZ + "+" + sOrtNeu;

	  if( java.awt.Desktop.isDesktopSupported() ) 
	  {
		  java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
		  if( desktop.isSupported(java.awt.Desktop.Action.BROWSE) ) 
		  {
			  try
			  {
				  java.net.URI uri = new java.net.URI( sURL );
				  desktop.browse( uri );
			  }
			  catch( Exception e1 )
			  {
				  e1.printStackTrace();
				  JOptionPane.showMessageDialog( this, "<HTML><FONT size = 4><b>Aufruf des Browsers fehlgeschlagen !!</b></FONT></HTML>\n\n", "Hinweis", JOptionPane.INFORMATION_MESSAGE, null );
			  }
		  }
	  }
  } // btnGoogleMaps_actionPerformed

Gruß
Klaus
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück