hay forma de....?

Rosalia
06 de Enero del 2004
hola a todos!!!

Solo necesito saber si hay forma de ejecutar un comando que venga en una cadena de caracteres.
Por ejemplo:
mi cadena es "Login.main(null)"
puedo hacer que se ejecute??
como si fuera una línea más de mi código?
Login.main(null);

y si no, alguien sabe cómo puedo hacer llmadas a otros programas sin usar :

Runtime r = Runtime.getRuntime();
r.exec("java Login");

lo que pasa es que tengo que leer los nombres de los programas de una tabla de mi base de datos y debo ejecutarlos, pero no debo perder los valores heredados, si uso r.exec("java Login"); me estaría ejecutando otra máquina virtual de java y los valores se me pierden.

les agradezco su ayuda de antemano.

saludos

Rosalía!

Heihachi
06 de Enero del 2004
Hola!

Échale una ojeada al package java.lang.reflect y a la clase Class

Un ejemplo:

//Cargamos la clase String
Class c=Class.forName("java.lang.String");
//Buscamos el constructor con un parámetro tipo String:
Class[] str={String.class};
Constructor constr=c.getConstructor(str);
//Creamos un nuevo String con el constructor
Object[] param={"Parametro "};
Object stringchorra=constr.newInstance(param);
//Buscamos el metodo trim:
Method miTrim=c.getMethod("trim",null);
//Aplicamos el método al String obtenido
Object[] args={};
Object resultado=miTrim.invoke(stringchorra,args);

Espero que te sirva!
No se si habrá algún error. De momento falta un try - catch

Saludos!




Rosalia
06 de Enero del 2004
ya pude correr otros metodos diferentes al main, pero cómo le hago para ejecutar el main o el constructor?