Data de compilação de uma classe

4 respostas
evandroshx

Olá pessoal,

estou tentando resolver um problema. Preciso pegar a data em que uma classe foi compilada e comparar com a data em que um arquivo .JAR foi gerado.

Alguém sabe se tem como fazer isso? Eu consigo capturar essas datas no Java?

Valeu.

4 Respostas

evandroshx

Será que alguém tem uma sugestão ou indicação de algum material que eu possa buscar uma solução para o problema acima?

[]s

H

Olá Evandoshx,

Talvez o código a seguir te ajude…

/*
	 * Método para obter a data de criação do arquivo de uma classe que está fora de um jar.
	 *
	 * OBS.: Se usar uma classe que está dentro de um jar neste método será retornado a data de criação do jar.
	 */
	public java.util.Date getClassDateCompilation(Class clazz) throws IOException {
		String className = clazz.getName();
		className = className.replaceAll("\\.", "/");
		className = "/" + className + ".class";
		URL url = Class.class.getResource(className);
		URLConnection urlConnection = url.openConnection();
		java.util.Date lastModified = new java.util.Date(urlConnection.getLastModified());
		return lastModified;
	}

	/*
	 * Método para obter a data de criação do arquivo que está dentro de um jar.
	 */
	public java.util.Date getJarClassDateCompilation(Class clazz) throws IOException {
		String className = clazz.getName();
		className = className.replaceAll("\\.", "/");
		className = "/" + className + ".class";
		URL jarURL = Class.class.getResource(className);
		JarFile jarFile = ((JarURLConnection)jarURL.openConnection()).getJarFile();
		className = className.substring(1);
		ZipEntry zipEntry = jarFile.getEntry(className);
		java.util.Date lastModified = new java.util.Date(zipEntry.getTime());
		return lastModified;
	}

Os dois métodos retornam a data de criação, porém conforme descrição são especificas…

Caso queira obter a data de um jar… é o seguinte:

File file = new File(“path + jarname”);
file.lastModified();

Espero ter ajudado.

Até +
Hendris

evandroshx

Valeu Hendris, muito obrigado, vou testar o código que me mandou e depois respondo informando se consegui ou não resolver o meu problema.

Valeu por enquanto.
Até
Evandro.

evandroshx

Olá Hendris,

funcionou cara, resolveu o meu problema.

Muito obrigado. Valeu mesmo!

[]s

Criado 14 de junho de 2007
Ultima resposta 18 de jun. de 2007
Respostas 4
Participantes 2