संक्षिप्त उत्तर: अक्सर, हाँ, आपको प्रति JVM एक आवेदन मिलेगा। लंबे उत्तर: जेवीएम का उपयोग उस तरह से किया जा सकता है, और यह सबसे अच्छा विकल्प हो सकता है, लेकिन यह होना जरूरी नहीं है।
यह सब इस बात पर निर्भर करता है कि आप 'एप्लीकेशन' को क्या मानते हैं। एक आईडीई एक एप्लिकेशन का एक अच्छा उदाहरण है जो अपने अंतिम उपयोगकर्ताओं (यानी हमें) को एक एकल इकाई के रूप में प्रस्तुत किया जाता है लेकिन जो वास्तव में कई अंतर्निहित अनुप्रयोगों (संकलक, परीक्षण धावक, स्थैतिक विश्लेषण उपकरण, पैकर्स, पैकेज मैनेजर, प्रोजेक्ट /) से मिलकर बनता है। निर्भरता प्रबंधन उपकरण, आदि)। उस स्थिति में, विभिन्न प्रकार की चालें होती हैं जो आईडीई यह सुनिश्चित करने के लिए उपयोग करती है कि उपयोगकर्ता अंतर्निहित उपकरणों की व्यक्तिगत योनि से परिरक्षित (कुछ हद तक) होने के दौरान एक एकीकृत अनुभव का अनुभव करता है। इस तरह की एक ट्रिक एक अलग JVM में कुछ चीजें करने के लिए है , या तो टेक्स्ट फाइलों के माध्यम से या एप्लिकेशन-लेवल डीबगिंग सुविधाओं के माध्यम से संचार करती है।
एप्लिकेशन सर्वर (Wildfly, Glassfish, Websphere, Weblogic, आदि) ऐसे अनुप्रयोग हैं जिनके raison d'etre को चलाने के लिए अन्य अनुप्रयोगों के लिए कंटेनरों के रूप में कार्य करना होता है। उस स्थिति में, एक दृष्टिकोण से, एक JVM प्रति अनुप्रयोग (यानी एक JVM) होता है। पूरे एप्लिकेशन सर्वर को चलाने के लिए उपयोग किया जाता है) लेकिन वास्तव में उस JVM के भीतर कई अनुप्रयोग होते हैं, प्रत्येक तार्किक रूप से अपने स्वयं के सह-लोडर (आकस्मिक-प्रक्रिया क्रॉस्टॉक की संभावना को कम करने) में एक दूसरे से अलग होते हैं।
तो, यह सब वास्तव में इस बात पर निर्भर करता है कि आप क्या मानते application
हैं। यदि आप विशुद्ध रूप से "उस चीज़ के बारे में बात कर रहे हैं जो 'मुख्य ()' कहे जाने पर चलती है", तो आप प्रति JVM एक अनुप्रयोग देख रहे हैं - जब OS JVM शुरू करता है, तो JVM एक एकल वर्ग public static void main()
विधि चलाता है ।
लेकिन एक बार जब आपके आवेदन अधिक जटिल होने लगते हैं तो आपकी सीमाएं अधिक धुंधली हो जाती हैं। इंटेलीज या एक्लिप्स जैसी एक आईडीई 'जेवैक' के रूप में एक ही सामान का अधिक उपयोग करेगी, या तो एक ही जेवीएम या एक अलग में, साथ ही साथ अलग-अलग काम (जैसे कि स्क्रीन को फिर से करना)। और (साझा JVM) एप्लिकेशन सर्वर पर एक वेब एप्लिकेशन के उपयोगकर्ता वास्तव में कमांड लाइन के माध्यम से स्थानीय रूप से उपयोग किए जा सकने वाले 'कोर' एप्लिकेशन का अधिक उपयोग कर सकते हैं।