2014-12-09 9 views
6

Jak automatycznie uruchomić przeglądarkę po uruchomieniu aplikacji rozruchowej? Czy istnieje wywołanie zwrotne metody odbiornika, aby sprawdzić, czy aplikacja internetowa została wdrożona i jest gotowa do obsługi żądań, więc że po załadowaniu przeglądarki użytkownik widzi stronę indeksu i może rozpocząć interakcję z aplikacją internetową?Automatycznie uruchamiaj przeglądarkę po uruchomieniu przeglądarki internetowej wiosennej i rozruchowej.

public static void main(String[] args) { 
    SpringApplication.run(Application.class, args); 
    // launch browser on localhost 
} 

Odpowiedz

4

Można to zrobić za pomocą kodu Java. Nie jestem pewien, czy wiosenne buty mają coś z pudełka.

import java.awt.Desktop; 
import java.io.IOException; 
import java.net.URI; 
import java.net.URISyntaxException; 

public class Browser { 
    public static void main(String[] args) { 
     String url = "http://www.google.com"; 

     if(Desktop.isDesktopSupported()){ 
      Desktop desktop = Desktop.getDesktop(); 
      try { 
       desktop.browse(new URI(url)); 
      } catch (IOException | URISyntaxException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     }else{ 
      Runtime runtime = Runtime.getRuntime(); 
      try { 
       runtime.exec("xdg-open " + url); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    } 
} 
+0

Może powinienem opracować chciałbym uzyskać zwrotnego jak beanpostconstruct aby dać mi znać, jeśli kontekst internetowa jest gotowa służyć, wtedy można otworzyć przeglądarka taka jak powyższy kod lub użyj biblioteki uruchamiania przeglądarki. – cherit

+0

Po uruchomieniu metoda jest gotowa ... Możesz więc po prostu uruchomić przeglądarkę po tym. –

+0

Chcesz powiedzieć, że metoda run jest blokująca? – cherit

0

poniższy kod pracował dla mnie:

@EventListener({ApplicationReadyEvent.class}) 
void applicationReadyEvent() { 
    System.out.println("Application started ... launching browser now"); 
    Browse("www.google.com"); 
} 

public static void Browse(String url) { 
    if(Desktop.isDesktopSupported()){ 
     Desktop desktop = Desktop.getDesktop(); 
     try { 
      desktop.browse(new URI(url)); 
     } catch (IOException | URISyntaxException e) { 
      e.printStackTrace(); 
     } 
    }else{ 
     Runtime runtime = Runtime.getRuntime(); 
     try { 
      runtime.exec("rundll32 url.dll,FileProtocolHandler " + url); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
Powiązane problemy