📄 manifestreader.java
字号:
package com.esri.solutions.jitk.common.version;
import java.net.URL;
import java.util.jar.Attributes;
import java.util.jar.Manifest;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
public class ManifestReader {
private static final Logger _logger = LogManager.getLogger(ManifestReader.class);
protected String _valueToRead;
public ManifestReader() {
}
public void setValueToRead(String valueName) {
_valueToRead = valueName;
}
public String getValueToRead() {
return _valueToRead;
}
public String getImplementationVersion() {
final String valueName = "Implementation-Version";
String val = getNamedValue(valueName);
_logger.info("Application Version: " + val);
return val;
}
public String getValue() {
return getNamedValue(_valueToRead);
}
@SuppressWarnings("unchecked")
public String getNamedValue(String valueName) {
String val = "";
try {
Class clazz = ManifestReader.class;
String classContainer = clazz.getProtectionDomain().getCodeSource().getLocation().toString();
int lastIndex = classContainer.indexOf("WEB-INF");
//String separator = System.getProperty("file.separator");
String separator = "/";
String manifestPath = classContainer.substring(0, lastIndex - 1);
manifestPath += separator;
manifestPath += "META-INF";
manifestPath += separator;
manifestPath += "MANIFEST.MF";
_logger.debug("Manifest path: " + manifestPath);
URL manifestUrl = new URL(manifestPath);
Manifest manifest = new Manifest(manifestUrl.openStream());
Attributes attribs = manifest.getMainAttributes();
val = attribs.getValue(valueName);
}
catch (Exception e) {
_logger.error("Cannot read jar-file manifest value " + valueName, e);
}
return val;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -