plugin internet google cómo como chrome activar java linux browser x11 daemon

internet - plugin java chrome



Abre la ventana del navegador desde el programa Java (5)

Pregunta

Tengo una aplicación escrita en Java. Está diseñado para ejecutarse en una caja Linux autónoma. Estoy tratando de generar una nueva ventana de Firefox . Sin embargo, Firefox nunca se abre. Siempre tiene un código de salida de shell de 1. Puedo ejecutar este mismo código con gnome-terminal y se abre bien.

Fondo

Entonces, aquí está su proceso de inicialización:

  1. Comience X "Xorg: 1 -br -terminate -dpms -quiet vt7"
  2. Inicie Window Manager "metacity --display =: 1 --replace"
  3. Configure los recursos "xrdb -merge / etc / X11 / Xresources"
  4. Conviértete en un daemon y desconecta de la terminal de control

Una vez que el programa se ejecuta, hay un botón en el que el usuario puede hacer clic para generar una ventana de Firefox. Aquí está mi código para hacer eso. Recuerde que X se está ejecutando en la pantalla: 1.

Código

public boolean openBrowser() { try { Process oProc = Runtime.getRuntime().exec( "/usr/bin/firefox --display=:1" ); int bExit = oProc.waitFor(); // This is always 1 for some reason return true; } catch ( Exception e ) { oLogger.log( Level.WARNING, "Open Browser", e ); return false; } }


Puede tener mejor suerte si lee y muestra los flujos de salida / error estándar, para que pueda capturar cualquier mensaje de error que firefox pueda imprimir.


Si puede reducirlo a Java 6, puede usar la API de escritorio:

http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/

Debería verse algo como:

if (Desktop.isDesktopSupported()) { Desktop desktop = Desktop.getDesktop(); if (desktop.isSupported(Desktop.Action.BROWSE)) { try { desktop.browse(new URI("http://localhost")); } catch(IOException ioe) { ioe.printStackTrace(); } catch(URISyntaxException use) { use.printStackTrace(); } } }


Use BrowserLauncher .

Invocarlo es muy fácil, solo ve

new BrowserLauncher().openURLinBrowser("http://www.google.com");


después de haber leído las diversas respuestas y varios comentarios (del interrogador), esto es lo que haría

1) prueba este enfoque java http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ProcessBuilder.html

ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2"); Map<String, String> env = pb.environment(); env.put("VAR1", "myValue"); env.remove("OTHERVAR"); env.put("VAR2", env.get("VAR1") + "suffix"); pb.directory("myDir"); Process p = pb.start();

ver más sobre esta clase:

http://java.sun.com/developer/JDCTechTips/2005/tt0727.html#2
http://www.javabeat.net/tips/8-using-the-new-process-builder-class.html

2) intente hacer esto (iniciar Firefox) desde C / C ++ / ruby ​​/ python y ver si eso está teniendo éxito.

3) si todo lo demás falla, lanzaría un programa shell y ese programa shell lanzaría Firefox !!


try { String url = "http://www.google.com"; java.awt.Desktop.getDesktop().browse(java.net.URI.create(url)); } catch (java.io.IOException e) { System.out.println(e.getMessage()); }