Executar um jar apartir da minha action

3 respostas
S

Olá
Eu tenho um um jar chamando logauditoria.jat e nele eu tenho dois class

auditoria.class
log.class

A pergunta é, como faço para saber o que essas classe recebem como parametro e como executa-las?

Grato

3 Respostas

lina

Oi,
Tipo... eu tenho uma ideia que já coloquei em pratica.. não sei se só existe essa maneira, mais na verdade para executar varios .class em um unico determinado .jar, você deve criar uma classe "controladora" com apenas um método main chamando todos os seus .class executaveis como parametro..

Ai vai:

public class Teste
{
	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		try
		{	
			Class.forName(args[0]).getMethod("main",new Class[]{String[].class}).invoke(new Object(),new Object[]{args});
		}
		catch (IllegalArgumentException e)
		{
			JOptionPane.showMessageDialog(null,"Illegal Arguments");
		}
		catch (IllegalAccessException e)
		{
			JOptionPane.showMessageDialog(null,"Illegal Access");
		}
		catch (InvocationTargetException e)
		{
			JOptionPane.showMessageDialog(null,"Invocation Target");
		}	
		catch (SecurityException e)
		{
			JOptionPane.showMessageDialog(null,"SecurityException");
		}
		catch (NoSuchMethodException e)
		{
			JOptionPane.showMessageDialog(null,"NoSuchMethodException");
		}
		
		catch (ClassNotFoundException e)
		{
			JOptionPane.showMessageDialog(null,"ClassNotFoundException");
		}
	}
}

Então, tentando explicar:

Dentro do try, você faz sua chamada controladora.. onde no código:

Class.forName(args[0]).getMethod("main",new Class[]{String[].class}).invoke(new Object(),new Object[]{args});

chama sua class, passando os argumetos das outras .class, pegando o getMethod fazendo devolver um método main em uma nova classe, que por fim você passa ela como um argumento String.
e o .invoke é necessario pois tudo é dinamico.

Sendo assim, basta na hora de executar o jar, passar a linha de comando:

java -jar SeuJar.jar pacote.classe

Acho que é isso...
Tentei explicar!
qualquer coisa..

Tchauzin!

Obs: É claro que não é necessario todas as exceções, você poderia fazer tratamento para elas..

vanderlanio

Bom se eu entendi bem vc gostaria de utilizalas em seu projeto certo ???
Entao vc só precisa add o jar no dir lib, import as classes…

:lol:

lina

Tipo, ele não responde…
mais eu acho que ele deseja executar 2 classes (cada uma com seu main) em um .jar criado…

Criado 29 de dezembro de 2006
Ultima resposta 29 de dez. de 2006
Respostas 3
Participantes 3