Java - applet que ejecute aplicación externa

 
Vista:

applet que ejecute aplicación externa

Publicado por rcr (5 intervenciones) el 07/03/2010 23:26:13
Hola a tod@s, les escribo para ver si me pueden ayudar con mi problema. Tengo que desarrollar un applet que ejecute una aplicación externa (en concreto, el programa estadístico R) al cual le debo pasar un archivo.txt y luego mi applet debe recoger los datos de salida de la aplicación.

Nunca he trabajado con applets y estoy un poco perdida sobre las funciones que tengo que utilizar. Si me pudieran recomendar algún tutorial o si me dejaran algún ejemplo (hasta ahora siempre he visto los básicos), me sería de gran ayuda. Muchas gracias de antemano.

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
sin imagen de perfil

RE:applet que ejecute aplicación externa

Publicado por Javier Mariscal (94 intervenciones) el 09/03/2010 02:17:54
Lo que tienes que hacer para que tu applet pueda accesar a funciones externas de su contexto es firmarlas, para q el usuario al ejecutarlas confirme o no si desea aceptar tu applet. Aqui te dejo este link q te explica como firmar un applet.
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=secapplet

espero que te ayude en algo.
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:applet que ejecute aplicación externa

Publicado por rcr (5 intervenciones) el 09/03/2010 17:13:14
Muchas gracias por responder. Lo primero que hice fue firmarlo como me comentabas. Almacené en el mismo directorio .keystore y mi archivo .mypolicy (lo cree a través de PolicyTools y lo que hice fue dar "All permissions" a la carpeta donde tengo almacenado mi applet) pero aún me sigue dando errores de seguridad.

Mi programa de prueba en concreto trata de ejecutar el comando dir en cmd y estoy intentando lanzarlo ejecutando un .html o a través del appletviewer del siguiente modo:

appletviewer -J-Djava.security.Policy=mypolicy http://localhost/prueba/applet.html

Se me abre la ventanita de java, pero en la consola me aparecen unos mensajes de error, te dejo aquí comentada la primera línea:

java.security.AcessControlException: access denied (java.io.filepermission <<ALLFILES>> execute)

Tienes alguna idea de porque me puede seguir dando errores de seguridad ?? será porque hice mal lo del archivo .policy ; porque yo creo que bien firmado esta porque luego lo comprobé con la opción de -verify o algo así creo que era.

Muchas gracias de nuevo por tu tiempo y tu respuesta. Un saludo,

Rebeca.
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
sin imagen de perfil

RE:applet que ejecute aplicación externa

Publicado por Javier Mariscal (94 intervenciones) el 10/03/2010 03:15:15
No te preocupes, es que al parecer no haz leido bien el link que te di., seguro por la emocion verdad?,

bueno primero ejecuta tu applet desde de tu appletViewer, de forma local, si eso funciona entonces, pudes seguir, ahora que sabes que tu applet si funciona en realidad, luego procedes a firmarlo. Las dos herramientos mencionadas el keytool y el jarsigner se encuentrar en la carpeta bin de donde este instalado jdk o jre uno de esos, y cuando aplique los dos pasos que te dicen en el link(crear el ceritificado y firmar el el jar), tu archivo jar que contiene tu applet se modificara,
coges este jar modificado y lo llamas desde un html,ese ejemplo lo puedes buscar el la web. Cuando se ejecute el html, se cargara el applet y siempre te pedira una ventanita de confirmacion, aceptas y tu applet funcionara....

Por siacaso prueba con un applet simple, agregale botones, texfield y ejecutalo y firmalo como te he mencionado. Para descartar.
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:applet que ejecute aplicación externa

Publicado por rcr (5 intervenciones) el 11/03/2010 19:47:43
Muchas gracias por responder de nuevo. El problema es que no me funciona de forma local, ejecutándolo desde mi appletViewer. Te pongo aquí mi código:

import java.applet.*;
import java.awt.*;
import java.io.IOException;

public class applet extends Applet {

public void init() {
setBackground(Color.WHITE);
}

public void start() {
try {
openCMD();
} catch (IOException e) {}
}

public void stop(Graphics g) {
g.drawString("Applet Finished", 10, 10);
}

public void paint(Graphics g) {
g.drawString("Applet Started", 10, 10);
}

public void openCMD() throws IOException {
System.out.println("opening cmd..");
Runtime r = Runtime.getRuntime();
Process p = r.exec("cmd.exe /c dir");
}
}

Y mi .html es:

<HTML>
<HEAD>
<TITLE>A Simple Program</TITLE>
</HEAD>
<BODY>
Here is the output of my program.

<APPLET CODE="applet.class" WIDTH=150 HEIGHT=25>
</APPLET>
</BODY>
</HTML>

No se si te he entendido bien, pero esto debería funcionarme a nivel local sin firmar ??
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