2010-01-08 17 views
8

आप एक मशीन पर एकाधिक JVMs कैसे चलाते हैं? आप एक अलग जेवीएम में विधियों को कैसे कॉल करते हैं?एकाधिक JVMs चल रहा है

+0

@yx: मुझे यकीन नहीं है, लेकिन मुझे लगता है कि मूल प्रश्न विभिन्न वीएम में चल रहे दो जावा प्रक्रियाओं के बीच "संवाद" करने के बारे में था। –

+0

हो सकता है कि मैंने इसे गलत तरीके से पढ़ा, मैंने अपना संपादन संपादित कर लिया है, मुझे बिल्कुल डरावनी व्याकरण से छुटकारा पाना पड़ा: "क्या यह संभव है" तो मैंने इसे थोड़ा तेज़ कर दिया होगा :( –

+0

कृपया बताएं कि आप क्या हासिल करना चाहते हैं। यह प्रश्न व्याख्या के लिए खोलने का तरीका है; आपको इस तरह का कोई उपयोगी उत्तर नहीं मिलेगा। – extraneon

उत्तर

17

कैसे आप एक ही मशीन पर एकाधिक JVMs चला सकता हूँ?

बस एकाधिक java प्रक्रियाएं लॉन्च करें।

आप एक अलग जेवीएम में विधियों को कैसे कॉल करते हैं?

किसी भी प्रकार के आरपीसी ढांचे (आरएमआई, ईजेबी, वेब सेवा इत्यादि) का उपयोग करें।

3

हाँ आप एक ही मशीन पर एकाधिक वीएम चला सकते हैं। आपको बस यह निर्दिष्ट करने की आवश्यकता है कि कौन सा भागना है।

जब आप कहते हैं कि आप विभिन्न जेवीएम पर चल रहे तरीकों को कॉल करना चाहते हैं तो क्या आपका मतलब है कि वे एक-दूसरे से बात करते हैं? यदि ऐसा है तो Remote Method Invocation (RMI) देखें।

+0

आरएमआई पर सूर्य के ऑनलाइन प्रशिक्षण भी देखें: http://java.sun.com/developer/ ऑनलाइन प्रशिक्षण/आरएमआई/आरएमआई.html –

+0

यदि एकाधिक JVMs के बीच संवाद करने की आपकी आवश्यकता है, तो UdpInvoker http://code.google.com/p/udp-invoker/ का उपयोग करें। – Eflite

1

यह कोई समझ नहीं आता है।

  1. यह सिर्फ विभिन्न JREs, JDKs, आदि स्थापित करने, विभिन्न JVMs स्थापित करने के लिए आसान है

  2. प्रत्येक स्थापित से अलग एक पर अमल करने के लिए, आप उचित जावा आदेश का प्रयोग करेंगे। इस परियोजना के लिए कई परियोजनाएं जावा-एचओएमई पर भरोसा करती हैं।

  3. यदि आप एप्लेट के लिए ब्राउज़र में एकाधिक जेवीएम के बारे में बात कर रहे हैं, तो मैं आपकी मदद नहीं कर सकता।

7

अरे, मुझे लगता है कि आप JVM को चलाने के तरीके से भ्रमित हो सकते हैं। java.exe या javaw.exe का प्रत्येक निष्पादन आपके लिए JVM का एक नया उदाहरण बनाएगा। यदि आप दो java.exe आदेशों का उपयोग करके दो प्रोग्राम चलाते हैं तो आपके पास दो JVM चल रहे हैं

3

यह विभिन्न JVMs के अंतर्गत चलने वाले एक ही एप्लिकेशन में अलग-अलग विधियों के बारे में आपकी बात की तरह लगता है। यह नहीं हो सकता।

यदि आप विभिन्न अनुप्रयोगों के लिए विभिन्न जेवीएम का उपयोग करना चाहते हैं, तो आपको एक ऐप शुरू करते समय विशेष जेआरई के लिए मैन्युअल रूप से पथ निर्दिष्ट करना होगा। उदाहरण:

$PATH_TO_FIRST_JVM/bin/java -jar application1.jar 
$PATH_TO_DIFFERNT_JVM/bin/java -jar application2.jar 
3

आप के रूप में कई JVM हो सकता है के रूप में आप हर java.exe के रूप में एक मशीन पर चल सकता है या javaw.exe एक नया JVM अभिनय करेंगे।

और एक विधि को कॉल करने के संबंध में आप आरएमआई का उपयोग कर सकते हैं।

1

आप एक ही मशीन पर कई जावा प्रोग्राम लॉन्च कर सकते हैं (उदाहरण के लिए एक्लिप्स एक जावा प्रोग्राम है, जो आपके प्रोग्राम को लॉन्च कर सकता है), लेकिन विभिन्न जेवीएम के बीच आसान संचार प्रदान करने में कुछ भी नहीं है।

आरएमआई तंत्र है जो सूर्य को जेवीएम के बीच अलग-अलग या एक ही मशीन पर संचार प्रदान करने के लिए प्रदान करता है, लेकिन यह सही तरीके से काम करने के लिए गैर-तुच्छ है और इसके लिए वास्तविक तथ्य के रूप में उभरा नहीं है। एक महत्वपूर्ण सुविधा यह है कि यह JVM के बीच ऑब्जेक्ट्स को स्थानांतरित कर सकता है भले ही संबंधित कक्षाएं लक्ष्य JVM में मौजूद न हों।

http://java.sun.com/javase/technologies/core/basic/rmi/index.jsp

नहीं तो आप ग्रिड सॉफ्टवेयर, टेराकोटा, या किसी दूरस्थ प्रक्रिया कॉल तंत्र पर विचार कर सकते। ये आमतौर पर टीसीपी/आईपी आधारित होते हैं। आप अपने प्रश्न को संपादित करने के लिए यह जान सकते हैं कि आप क्या हासिल करना चाहते हैं, यह जानने के लिए कि वहां कैसे जाना है।

0

यहां कई अंतर्दृष्टिपूर्ण उत्तर हैं, लेकिन कुछ जो मुझे कई जेवीएम चलाने के लिए ड्राइविंग आवश्यकता में रूचि रखते हैं। आपको विश्वास क्यों है कि आपको ऐसा करने की ज़रूरत है? यदि आप समांतर प्रसंस्करण की तलाश में हैं, तो आप एकाधिक जेवीएम चलाने के विरोध में बहु-थ्रेडेड एप्लिकेशन पर विचार करना चाहेंगे। चूंकि प्रत्येक जेवीएम को महत्वपूर्ण संसाधनों की आवश्यकता हो सकती है और आप निष्पादन के पथों के बीच संचार करना चाहते हैं, इसलिए यह आपकी आवश्यकताओं के लिए एक बेहतर समाधान हो सकता है।

1

आप एक मशीन पर एकाधिक JVMs कैसे चलाते हैं? आप एक अलग जेवीएम में विधियों को कैसे कॉल करते हैं?

आरएमआई यह आमतौर पर किया जाता है। मैं भी वही काम करना चाहता हूं लेकिन आरएमआई के साथ। 32 बिट जेवीएम पर 1.5 जी छत से पहले पाने का आसान तरीका विंडोज़ पर एकमात्र ऐसा व्यक्ति है जो वीडियो चला सकता है (जेएमएफ + फोब्स, वीएलसीजे, जीस्ट्रीमर सभी ओरेकल 64 बिट जेवीएम के साथ असफल हो जाते हैं, सद्भाव अभी तक तैयार नहीं है, इसे एक शॉट दिया गया है, टी सुंदर)। वीडियो को किसी अन्य JVM में चलाया जा सकता है और किसी भी तरह से कुछ जेएनआई के माध्यम से ऑब्जेक्ट्स को साझा कर सकता है।

संबंधित मुद्दे