Classe Class

Estou com uma dúvida sobre essa classe… gostaria de saber se usando a classe Class posso abrir um jar e instanciar objetos da classe que esta dentro do jar, e chamar os métodos desse objeto… Não posso fazer isso usando a classe ClassLoader… Alguem pode me dar uma luz? estou totalmente perdido qualquer ajuda é valida. vou estar estudando enquanto isso qualquer coisa que eu achar posto aqui! :wink:

Ola

A classe java.lang.Class é ótima para usar atraves de reflection, acho que é isto que vc tá estudando, atraves dela vc consegue descobrir os metodos da classe e estaticos, campos e propriedades da classe, dentre outras informações… muito boa mesmo.

Em relação a sua pergunta a resposta é sim, mas só se vc tiver o jar em seu classpath e se souber previamente o path da classe.

Meu problema aqui esta sendo executar um .jar via código ME… eu pensei em usar a class Class já que o Me não tem o método exec da classe RunTime… Mas primeiro eu precisava aprender via SE. Você tem algum exemplo de como descobrir essas propriedades de uma classe usando a classe Class? Se tiver tem como me mandar um link ou postar aqui?

Ola,

para recuperar as propriedades de uma classe use o metodo :
Field[] getDeclaredFields()
e para recuperar campos estaticos use:
Field[] getFields()
por exemplo:

import java.lang.reflect.Field;

public class Reflection {
	public static String TESTE;
	
	private String nome;
	private int idade;
	
	public static void main(String[] args){
		Class c = Reflection.class;
		
		Field[] properties = c.getDeclaredFields();
		for(Field field : properties){
			System.out.println("properties = "+field.getType()+" "+field.getName());
		}
		
		
		properties = c.getFields();
		for(Field field : properties){
			System.out.println("field = "+field.getType()+" "+field.getName());
		}
	}
}