उद्देश्य जावा कोड लिखना है जो अनुकूलता परिवर्तन, साइड इफेक्ट्स, बग्स और / या अपरिभाषित व्यवहार में भरोसा करने वाले जेवीएम संस्करण का पता लगाता है जो एक संस्करण में एक तरह से और दूसरे संस्करण में एक तरह से काम करता है। इसके अलावा, कोड कम से कम थोड़ा पठनीय होना चाहिए, बिना व्हाट्सएप और सुपाठ्य चर नामों का त्याग किए बिना।
उस उद्देश्य को सुनिश्चित करने के लिए, सटीक औपचारिक नियम हैं:
कोड जावा में लिखा होना चाहिए और जेआरई संस्करण को आउटपुट करना चाहिए जिसमें यह चल रहा है।
कोड को विशेष रूप से जावा संस्करण का पता लगाने के लिए दिए गए किसी भी JDK या JRE API का उपयोग नहीं करना चाहिए या जो JDK या JRE संस्करण को मुफ्त में देता है।
कोड प्रतिबिंब का उपयोग नहीं करना चाहिए।
कोड केवल हॉटस्पॉट जावा एसई 5, 6 और 7 में काम करने के लिए आवश्यक है, लेकिन अन्य जेवीएम में काम कर सकता है।
कोड को क्लासपाथ में किसी भी तीसरे पक्ष के पुस्तकालयों का उपयोग नहीं करना चाहिए।
कोड को किसी अन्य प्रक्रिया, जावा या नहीं शुरू नहीं करना चाहिए।
कोड को पर्यावरण चर का उपयोग नहीं करना चाहिए।
कोड को पहले से मौजूद फ़ाइलों या फ़ोल्डरों की तलाश में फाइल सिस्टम की खोज नहीं करनी चाहिए।
कोड एक एकल फाइल में निहित किया जाना चाहिए और के माध्यम से कहा जा
public static void main(String[] args)
याpublic static void main(String... args)
।कोड को JRE में मौजूद किसी भी गैर-सार्वजनिक API का उपयोग नहीं करना चाहिए।
इसके निष्पादन के दौरान कोड को कोई NoClassDefFoundError, NoSuchMethodError, ClassNotFoundException या NoSuchMethodException उत्पन्न नहीं करना चाहिए।
कोड को इंटरनेट या किसी स्थानीय नेटवर्क से डिस्कनेक्ट किए गए सिस्टम में चलना चाहिए।
आपको एक स्पष्टीकरण देना चाहिए कि यह एक संस्करण में एक तरीके से और दूसरे संस्करण में दूसरे तरीके से क्यों व्यवहार करता है।
स्कोरिंग
सबसे अच्छा समाधान मापने के लिए उपयोग की जाने वाली विधि अधिकतम (n / s) है, जहां n इनमें से किसी भी नियम (कम से कम 5, 6 और 7) का उल्लंघन किए बिना विभिन्न जावा संस्करणों की संख्या का पता लगाया गया है और एस लेक्सिकल टोकन की संख्या है समाधान में।