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.
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.
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
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
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.
Olá Hendris,
funcionou cara, resolveu o meu problema.
Muito obrigado. Valeu mesmo!
[]s