Nesse post, vou demonstrar como é possível ler o arquivo MANIFEST.MF da própria aplicação. Essa é uma implementação é muito simples, mas existe um importante detalhe.
Ao ler o MANIFEST.MF, o Java considera todos os jars disponíveis no classpath da aplicação. Por isso é importante criar algo que identifique o jar correto. Nesse exemplo vou considerar a propriedade Built-By.
import java.net.URL; import java.util.Enumeration; import java.util.jar.Attributes; import java.util.jar.Manifest; public class ApplicationProperties { private static Manifest manifest; static { try { Enumeration<URL> resources = ApplicationProperties.class.getClassLoader() .getResources("META-INF/MANIFEST.MF"); while (resources.hasMoreElements()) { Manifest m = new Manifest(resources.nextElement().openStream()); if ("YaW Tecnologia".equalsIgnoreCase( m.getMainAttributes().getValue("Built-By"))) { manifest = m; break; } } } catch (Exception e) { System.err.println("Não foi possível ler o manifest do projeto: " +e.getMessage()); } } /** * @return null se não encontrar o arquivo. */ public static Manifest getManifestFile() { return manifest; } }
Vale notar que a estratégia em usar o Built-By torna-se inválida quando existir mais do que um jar empacotado, por YaW Tecnologia, no classpath.
@edermag
No comments:
Post a Comment