Java - Mostrar web desde java

 
Vista:

Mostrar web desde java

Publicado por Fran (8 intervenciones) el 28/06/2007 11:59:46
Buenas amigos, estoy empezando con java y quiero que cuando se pulse un boton se acceda a una URL especificada. La cuestión es que cuando lo estoy probando con el eclipse va bien. Pero cuando lo compilo en un jar y lo ejecuto me da el siguiente error:

Exception in thread "AWT-EventQueue-3" java.security.AccessControlException: access denied (java.io.FilePermission <<ALL FILES>> execute)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkExec(Unknown Source)
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 url.mostrarURL.muestraURL(mostrarURL.java:25)
at pantallasCentros.DetalleCentro.actionPerformed(DetalleCentro.java:388)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Como podría solucinonarlo.
Gracias de antemano y un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Mostrar web desde java

Publicado por Juan (3 intervenciones) el 28/06/2007 19:52:22
en que contenedor se esta mostrando la URL, puede ser de alli el error aonque seria bueno ver el codigo donde se muestra..............

SALUDOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mostrar web desde java

Publicado por Fran (1 intervención) el 29/06/2007 11:35:13
Este es el código de la clase:

public class mostrarURL
{
public mostrarURL(){};

public static void muestraURL(String url, String nombreNavegador) {
final String WIN_ID = "Windows";
// The default system browser under windows.
final String WIN_PATH = "rundll32";
// The flag to display a url.
final String WIN_FLAG = "url.dll,FileProtocolHandler";
// The default browser under unix.
final String UNIX_PATH_DEFECTO = "mozilla";
// The flag to display a url
final String UNIX_FLAG = "-remote openURL";

boolean windows = isWindowsPlatform();
String cmd = null;
try {
if (windows) {
// cmd = 'rundll32 url.dll,FileProtocolHandler http://...'
cmd = WIN_PATH + " " + WIN_FLAG + " " + url;
Process p = Runtime.getRuntime().exec(cmd);
}
else {
if(nombreNavegador != null && nombreNavegador.length()>0)
cmd = nombreNavegador + " " + UNIX_FLAG + "(" + url + ")";
else
cmd = UNIX_PATH_DEFECTO + " " + UNIX_FLAG + "(" + url + ")";
Process p = Runtime.getRuntime().exec(cmd);
try {
int exitCode = p.waitFor();
if (exitCode != 0) {
if(nombreNavegador != null && nombreNavegador.length()>0)
cmd = nombreNavegador + " " + url;
else
cmd = UNIX_PATH_DEFECTO + " " + url;
p = Runtime.getRuntime().exec(cmd);
}
}
catch(InterruptedException x) {
System.err.println("Error abriendo pagina, cmd='"+cmd + "'");
System.err.println("ERROR: " + x);
}
}
}
catch(java.io.IOException x) {
// couldn't exec browser
System.err.println("No puedo invocar al navegador, command=" + cmd);
System.err.println("ERROR:: " + x);
}
}

private static boolean isWindowsPlatform() {
final String WIN_ID = "Windows";
String os = System.getProperty("os.name");
if ( os != null && os.startsWith(WIN_ID))
return true;
else
return false;

}
}

Y aqui donde se muestra:

mostrarURL objMostrarURL = new mostrarURL();
String cadena = urlField.getText();
if(!cadena.isEmpty())
objMostrarURL.muestraURL(cadena,"");

Donde cadena coge el valor de un campo de texto y lo hace bien

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mostrar web desde java

Publicado por angel (537 intervenciones) el 29/06/2007 12:02:16
Si stas intentando abrir una pagina web enpaquetada en tu jar, yo creo k no lo habia conseguido,o m daba algunos problemas, de navegacion creo....Asi que los puse fuera n una carpeta
Suerte y saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mostrar web desde java

Publicado por Fran (8 intervenciones) el 02/07/2007 17:26:50
Pero fuera en una carpeta, ¿como? las páginas web a las que se acceden son externas.

Gracias y un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar