วัตถุประสงค์คือการเขียนโค้ดจาวาที่ตรวจจับเวอร์ชัน JVM โดยอาศัยการเปลี่ยนแปลงความเข้ากันได้ผลข้างเคียงข้อบกพร่องและ / หรือพฤติกรรมที่ไม่ได้กำหนดซึ่งทำงานในลักษณะหนึ่งเวอร์ชันและอีกวิธีในเวอร์ชันอื่น นอกจากนี้โค้ดควรมีอย่างน้อยอ่านได้เล็กน้อยโดยไม่เสียสละช่องว่างและชื่อตัวแปรที่ชัดเจน
เพื่อให้มั่นใจว่าวัตถุประสงค์กฎอย่างเป็นทางการที่แน่นอนคือ:
รหัสจะต้องเขียนใน java และควรส่งออกรุ่น JRE ที่มันกำลังทำงานอยู่
รหัสจะต้องไม่ใช้ JDK หรือ JRE API ใด ๆ ที่จัดไว้ให้โดยเฉพาะสำหรับการตรวจจับเวอร์ชันจาวาหรือซึ่งให้รุ่น JDK หรือ JRE ฟรี
รหัสจะต้องไม่ใช้การสะท้อน
รหัสจำเป็นต้องใช้เพื่อทำงานใน Hotspot Java SE 5, 6 และ 7 แต่อาจทำงานใน JVM อื่น ๆ
รหัสต้องไม่ใช้ไลบรารีบุคคลที่สามใด ๆ ใน classpath
รหัสจะต้องไม่เริ่มกระบวนการอื่นใด java หรือไม่
รหัสจะต้องไม่ใช้ตัวแปรสภาพแวดล้อม
รหัสจะต้องไม่ค้นหาระบบไฟล์เพื่อค้นหาไฟล์หรือโฟลเดอร์ที่มีอยู่แล้ว
รหัสจะต้องอยู่ในไฟล์เดียวและจะเรียกว่าผ่านหรือ
public static void main(String[] args)
public static void main(String... args)
รหัสจะต้องไม่ใช้ API ที่ไม่ใช่แบบสาธารณะใด ๆ ที่มีอยู่ใน JRE
รหัสต้องไม่สร้าง NoClassDefFoundError, NoSuchMethodError, ClassNotFoundException หรือ NoSuchMethodException ใด ๆ ระหว่างการดำเนินการ
รหัสควรทำงานในระบบที่ถูกตัดการเชื่อมต่อจากอินเทอร์เน็ตหรือจากเครือข่ายท้องถิ่นใด ๆ
คุณควรให้คำอธิบายว่าทำไมมันมีพฤติกรรมในทางเดียวในรุ่นและอีกวิธีหนึ่งในรุ่นอื่น
เกณฑ์การให้คะแนน
วิธีที่ใช้ในการวัดทางออกที่ดีที่สุดคือ max (n / s) โดยที่ n คือจำนวนเวอร์ชันจาวาที่แตกต่างกันที่ตรวจพบโดยไม่ละเมิดกฎเหล่านี้ (อย่างน้อยรุ่น 5, 6 และ 7) และ s คือจำนวนโทเค็นศัพท์ ในการแก้ปัญหา