पर जावा के निरंतर मान को परिभाषित करने का कोई तरीका है जब मैं सी/सी ++ में पुस्तकालय लिखता था, तो मुझे संकलन दिनांक/समय वापस करने की विधि होने की आदत मिली। यह हमेशा लाइब्रेरी में संकलित था, इसलिए लाइब्रेरी के निर्माण को अलग करेगा।संकलन समय
सी ++:: मैं कोड में एक #define वापस लौट कर यह मिल गया
#ifdef _BuildDateTime_
char* SomeClass::getBuildDateTime() {
return _BuildDateTime_;
}
#else
char* SomeClass::getBuildDateTime() {
return "Undefined";
}
#endif
फिर संकलन पर मैं निर्माण स्क्रिप्ट में था एक '-D_BuildDateTime_ = Date
'।
क्या किसी भी फाइल को मैन्युअल रूप से संपादित करने या किसी भी अलग फ़ाइलों को वितरित करने के लिए याद रखने के बिना जावा में यह या समान करने का कोई तरीका है।
एक सहकर्मी से मुझे एक सुझाव प्राप्त हुआ था कि वह एंटी फ़ाइल को क्लासपाथ पर फ़ाइल बनाने और जेएआर में पैकेज करने के लिए प्राप्त करे और इसे विधि द्वारा पढ़ा जाए।
कुछ की तरह (बनाया 'DateTime.dat' कहा जाता था फ़ाइल कल्पना करते हुए): एक हैक है और उन्हें धोखा दिया जा सकता है/किसी को एक समान नाम फ़ाइल होने के बाहर ने तोड़ा कि
// I know Exceptions and proper open/closing
// of the file are not done. This is just
// to explain the point!
String getBuildDateTime() {
return new BufferedReader(getClass()
.getResourceAsStream("DateTime.dat")).readLine();
}
मेरे मन के लिए
जार, लेकिन कक्षापथ पर।
वैसे भी, मेरे सवाल वहाँ संकलन समय की किसी कक्षा के एक निरंतर इंजेक्षन किसी भी तरह से है कि क्या है
संपादित
कारण मैं जार में एक बाह्य उत्पन्न फ़ाइल के उपयोग पर विचार हैक इस वजह से है ) एक लाइब्रेरी है और क्लाइंट ऐप्स में एम्बेड की जाएगी। ये क्लाइंट ऐप्स अपने स्वयं के क्लासलोडर्स को परिभाषित कर सकते हैं जिसका अर्थ है कि मैं मानक जेवीएम क्लास लोडिंग नियमों पर भरोसा नहीं कर सकता।
मेरी निजी प्राथमिकता कोआरएआर 10 द्वारा सुझाए गए जेएआर फ़ाइल से तारीख का उपयोग करने के साथ जाना होगा।
*। * क्या आप काम के माहौल कार्यक्रम है कि आप लोगों के बारे में चिंतित हैं "को धोखा देने में " इस? चींटी उत्पन्न करने के बाद फ़ाइल एक हैक नहीं है। बेशक मैनिफेस्ट दृष्टिकोण जावा-आईएसएम भी बेहतर है (और आप भी एंटी स्वचालित कर सकते हैं)। – Hejazzman