पैकेज श्रेणी java.lang.Package में आप जो चाहते हैं उसे करने के तरीके हैं।
String t = this.getClass().getPackage().getImplementationTitle();
String v = this.getClass().getPackage().getImplementationVersion();
मैं एक साझा उपयोगिता class.The विधि में एक स्थिर विधि में डाल एक पैरामीटर के रूप में एक वर्ग संभाल वस्तु स्वीकार: यहाँ एक आसान तरीका अपने जावा कोड का उपयोग कर प्रकट सामग्री प्राप्त करने के लिए है। इस तरह, जब हमें इसकी आवश्यकता होती है तो हमारे सिस्टम में किसी भी वर्ग की अपनी प्रकट जानकारी प्राप्त हो सकती है। स्पष्ट रूप से विधि को सरणी या मूल्यों के हैशैप को वापस करने के लिए आसानी से संशोधित किया जा सकता है।
कॉल विधि:
String ver = GeneralUtils.checkImplVersion(this);
GeneralUtils.java नामक एक फ़ाइल में विधि:
public static String checkImplVersion(Object classHandle)
{
String v = classHandle.getClass().getPackage().getImplementationVersion();
return v;
}
और उन आप पैकेज के माध्यम से प्राप्त कर सकते हैं के अलावा अन्य प्रकट क्षेत्रों-मूल्यों को प्राप्त करने के लिए कक्षा (उदाहरण के लिए अपनी खुद की बिल्ड-डेट), आपको मुख्य अटैचमेंट मिलते हैं और उन लोगों के माध्यम से काम करते हैं, जिन्हें आप चाहते हैं। यह निम्नलिखित कोड मुझे मिले एक समान प्रश्न से थोड़ा सा मामला है, शायद यहां SO पर। (मैं इसे क्रेडिट करना चाहता हूं लेकिन मैंने इसे खो दिया - क्षमा करें।)
इसे क्लास हैंडल ("यह" या MyClass.class) में विधि में गुजरने के लिए एक कोशिश-पकड़ ब्लॉक में डाल दें। "ClassHandle" प्रकार कक्षा की है:
String buildDateToReturn = null;
try
{
String path = classHandle.getProtectionDomain().getCodeSource().getLocation().getPath();
JarFile jar = new JarFile(path); // or can give a File handle
Manifest mf = jar.getManifest();
final Attributes mattr = mf.getMainAttributes();
LOGGER.trace(" --- getBuildDate: "
+"\n\t path: "+ path
+"\n\t jar: "+ jar.getName()
+"\n\t manifest: "+ mf.getClass().getSimpleName()
);
for (Object key : mattr.keySet())
{
String val = mattr.getValue((Name)key);
if (key != null && (key.toString()).contains("Build-Date"))
{
buildDateToReturn = val;
}
}
}
catch (IOException e)
{ ... }
return buildDateToReturn;
की संभावित डुप्लिकेट http://stackoverflow.com/questions/2198525/can-values-defined-in-manifest-mf-be-accessed-programmatically/2198542 –