JRebel के लिए वैकल्पिक विकल्प बंद करें [बंद]


190

JRebel एप्लिकेशन को पुनः आरंभ किए बिना नए संकलित कोड को फिर से तैयार करने की अनुमति देता है। मैं सोच रहा हूं कि क्या कोई विकल्प (मुफ्त?) है। अकसर किये गए सवाल पृष्ठ इस सवाल का जवाब है, लेकिन मुझे यकीन है कि यह JRebel के प्रति पक्षपाती है हूँ। इस साइट पर यह प्रश्न एक साल पहले पूछा गया था, लेकिन मैं इसे वापस ला रहा हूं ताकि किसी को कोई नई जानकारी मिल सके।

एक साइड नोट पर, मैं वास्तव में जेब्रेल को पसंद करता हूं, लेकिन अगर कोई मुफ्त विकल्प है, तो मैं इसे आज़माने के लिए तैयार हूं।

एक अतिरिक्त ध्यान दें, मैं एक ओपन सोर्स प्रोजेक्ट पर काम कर रहा हूं, और वे उन लोगों को मुफ्त एक साल का लाइसेंस प्रदान करते हैं जो साबित कर सकते हैं कि वे एक ओपन सोर्स प्रोजेक्ट पर हैं। जो मेरे लिए बहुत काम करता है (www.kuali.org), लेकिन मैं उस प्रोजेक्ट पर हमेशा नहीं रहूंगा।


53
अच्छा प्रश्न। हम JRebel के लिए भी एक विकल्प की तलाश कर रहे हैं, क्योंकि उनका बिक्री विभाग बेहद आक्रामक है। हमें JRebel जैसे उत्पाद के लिए भुगतान करने में कोई समस्या नहीं है, लेकिन तब नहीं जब वे हमारे डेवलपर्स और आईटी विभाग को 24/7 पर रोक रहे हैं।
neu242

4
खुद के जीरो टर्नअराउंड द्वारा jRebel का एक विकल्प है: ओपनसोर्स परियोजनाओं और अध्ययन के मामले में Jrebel का मुफ्त संस्करण ... my.jrebel.com
dellasavia

2
मुझे पता है कि यह देर से उत्तर है, आप स्प्रिंग लोडेड पर एक नज़र डाल सकते हैं - जो कि एक जेवीएम चल रहा है, जबकि वर्ग फ़ाइल परिवर्तन को फिर से लोड करने के लिए एक जेवीएम एजेंट है। यह बाद में पुनः लोड करने के लिए उन्हें उत्तरदायी बनाने के लिए कक्षाओं को लोडटाइम में बदल देता है। 'हॉट कोड रिप्लेस' के विपरीत, जो केवल एक बार जेवीएम चलने पर (जैसे बॉडी मेथड में बदलाव के लिए) सिंपल बदलाव की अनुमति देता है, स्प्रिंग लोडेड आपको मेथड्स / फील्ड्स / कंस्ट्रक्टर्स आदि को जोड़ने / संशोधित करने / हटाने की अनुमति देता है ...
सिंपल-सॉल्यूशन

ग्रहण डिबगर - आपके लाइव कोड को तुरंत बदल देता है।
user1050755 21

इसे बहन साइट, सॉफ़्टवेयर अनुशंसाएँ स्टैक एक्सचेंज पर पोस्ट करने का प्रयास करें ।
बेसिल बोर्के

जवाबों:


97

DCEVM पर एक नज़र डालें , यह हॉटस्पॉट VM का एक संशोधन है जो रनटाइम पर असीमित श्रेणी के पुनर्निर्धारण की अनुमति देता है। आप खेतों और विधियों को जोड़ सकते हैं / हटा सकते हैं और रनटाइम में एक वर्ग के सुपर प्रकार बदल सकते हैं। DCEVM की सुविधाओं को JEP 159 के भाग के रूप में जावा के भविष्य के अद्यतन में एकीकृत किया जा सकता है ।

बाइनरी मूल साइट पर उपलब्ध जावा 6u25 करने और जावा 7. के प्रारंभिक संस्करणों के लिए सीमित हैं परियोजना पर काँटेदार कर दिया गया है Github और जावा 7 और 8 मेंटेनर विंडोज पर 32/64 बिट्स वीएमएस के लिए बाइनरी प्रदान करता है के हाल के संस्करणों का समर्थन करता है / लिनक्स। जावा 11 से शुरू होकर यह प्रोजेक्ट नए GitHub रिपॉजिटरी में चला गया और अब OS X के लिए बायनेरिज़ भी प्रदान करता है।

DCEVM को डेबियन और उबंटू के लिए पैक किया गया है, यह आसानी से OpenJDK के साथ एकीकृत है और इसके साथ लागू किया जा सकता है java -dcevm। पैकेज का नाम डिफ़ॉल्ट JDK के संस्करण पर निर्भर करता है:


5
यह ठीक काम करता है, मैंने इसे JRebel की तुलना में अधिक तेज और कम मेमोरी वाला पाया। एकमात्र प्रतिबंध जावा 6u25 से चिपके रहना है।
इमैनुएल बॉर्ग

3
आपका बहुत बहुत धन्यवाद। मैंने पूरा दिन बर्बाद कर दिया है जेआरबेल को वांछित रूप से काम करने की कोशिश कर रहा है। बचाव के लिए DCEVM आया।
एलेरो

4
यहाँ JDK 7u45 और MacOSX पर DCEVM के लिए पूर्ण निर्माण और स्थापना निर्देश हैं: neu242.livejournal.com/52962.html
neu242

1
JEP 159 JDK 8 का हिस्सा नहीं है। यह JDK 9 पर स्थगित हो सकता है लेकिन अभी तक इसकी कोई पुष्टि नहीं हुई है।
कृष्णप्रभाकर

5
यहां कुछ पूर्ण JVM 1.7 बायनेरिज़ मिले: dcevm.nentjes.com ताकि आपके JVM को पैच करने की आवश्यकता न हो। मैं एक win64 की कोशिश की और यह मेरे लिए बहुत अच्छा काम किया। अगर आपको अधिक जानकारी चाहिए तो मैंने इसके बारे में यहां ब्लॉगिंग भी की: javainformed.blogspot.com/2014/01/jrebel-free-alternative.html
dnang

42

Hotswap Agent DCEVM का एक विस्तार है जो कई जावा चौखटे (रील स्प्रिंग बीन परिभाषा, हाइबरनेट इकाई मैपिंग, लकड़हारा स्तर सेटअप, ...) का समर्थन करता है।

जावा 1.7 के लिए DCEVM और संकलित बायनेरिज़ सेटअप करने के लिए बहुत सारे दस्तावेज़ भी हैं।


5
अब उनके पास एक समर्पित वेब साइट है: hotswapagent.org । यह प्रोजेक्ट काफी नया है लेकिन यह काफी अच्छा काम करता है।
दिदियर एल

मैंने इस ट्यूटोरियल का अनुसरण इसे ग्रहण करने के बाद ग्रहण में एकीकृत करने के लिए किया: tirthalpatel.blogspot.fr/2014/06/… यह एक आकर्षण की तरह काम करता है
jpprade

@edudant 'हॉटस्वाप एजेंट' स्थापित करने के बाद, क्या हमें DCEVM स्थापित करने की आवश्यकता है? क्योंकि मैंने Ubuntu 19.04 में "sudo apt install openjdk-11-jre-dcevm" का उपयोग करके DCEVM स्थापित किया है और IntelliJ Ultimate 2019.1.3 में भी प्लगइन। अगर 'हॉटस्वाप एजेंट' स्थापित करते हैं तो अकेले JRebel का काम करें, DCEVM का क्या उपयोग है?

21

DCEVM वर्धित श्रेणी के पुनर्निर्धारण का समर्थन करता है और वर्तमान JDK7 और JDK8 के लिए उपलब्ध है।

https://github.com/dcevm/dcevm/releases

HotswapAgent एक मुफ्त JRebel विकल्प है और विभिन्न चौखटे में DCEVM का समर्थन करता है।

http://hotswapagent.org/


20

स्प्रिंग वालों द्वारा, ग्रेल्स को पुनः लोड करने के लिए उपयोग किया जाता है, लेकिन जावा के साथ भी काम करता है:

https://github.com/SpringSource/spring-loaded


3
मैं बड़बड़ाना नहीं चाहता, लेकिन वसंत-भार निर्भरता को पुनः लोड करने का समर्थन नहीं करता है।
lbednaszynski

जैसा कि मुझे याद है, सिस्टम गुण हैं जिन्हें आप यह बताने के लिए सेट कर सकते हैं कि पुनः लोड करने योग्य पैकेज क्या हैं। इसकी अन्य सीमाएँ हैं और मैं शायद किसी भी सूरत में DCEVM के साथ जाना चाहूँगा।
रेमन

1
"क्या पैकेज पुनः लोड करने योग्य हैं" - सही। @Lbednaszynski द्वारा बताई गई समस्या यह है कि यह निर्भर JAR को फिर से लोड नहीं करेगा। मावेन बहु-मॉड्यूल परियोजनाओं के लिए यह आवश्यक है।
मार्सेल ने

यह परियोजना अभी के लिए अटारी में है!
jpmottin

12

मैंने DCEVM के बारे में एक लेख लिखा है : Spring-mvc + Velocity + DCEVM

मुझे लगता है कि यह इसके लायक है, क्योंकि मेरा पर्यावरण बिना किसी समस्या के चल रहा है।


8
लिंक अब काम नहीं कर रहा है
pakman


9

मैं एक ओपन सोर्स प्रोजेक्ट पर काम कर रहा हूं, जो आपको हॉट स्वैप की अनुमति देता है और उससे ऊपर की कक्षाओं को बदलने की अनुमति देता है: https://github.com/fakereplace/fakereplace

यह आपके लिए काम कर सकता है या नहीं, लेकिन किसी भी प्रतिक्रिया की सराहना की जाती है


4

आप इसे देख सकते हैं:

HotSwap समर्थन: जावा हॉटस्पॉट VM का ऑब्जेक्ट-ओरिएंटेड आर्किटेक्चर ऑन-द-फ्लाई क्लास रिडिफिनेशन, या "हॉटस्पैप" जैसी उन्नत सुविधाओं को सक्षम करता है। यह सुविधा डिबगर एपीआई के माध्यम से चल रहे एप्लिकेशन में संशोधित कोड को बदलने की क्षमता प्रदान करती है। HotSwap जावा प्लेटफ़ॉर्म डीबगर आर्किटेक्चर में कार्यक्षमता जोड़ता है, एक वर्ग को डिबगर के नियंत्रण में रहते हुए निष्पादन के दौरान अद्यतन करने में सक्षम बनाता है । यह प्रोफाइलिंग कोड को उन तरीकों के संस्करणों में हॉटवाशिंग द्वारा निष्पादित करने की अनुमति देता है जिसमें प्रोफाइलिंग कोड डाला गया है।

फिलहाल, यह केवल नए संकलित विधि निकाय को अनुप्रयोग को फिर से शुरू किए बिना फिर से तैयार करने की अनुमति देता है। आपको बस इसे डिबगर के साथ चलाना है। मैंने इसे ग्रहण में आजमाया और यह शानदार तरीके से काम करता है।

इसके अलावा, जैसा कि इमैनुएल बोर्ग ने अपने उत्तर ( जेईपी 159 ) में उल्लेख किया है , सुपरपाइप्स के अलावा और तरीकों और क्षेत्रों को जोड़ने और हटाने के लिए समर्थन होने की उम्मीद है।

संदर्भ: जावा व्हाइटपेपर १२५२१aper: विश्वसनीयता, उपलब्धता और सेवाक्षमता


-3

JRebel फ्री है। इसे न खरीदें। "खरीदें" पृष्ठ पर "मुक्त" विकल्प (रेडियो बटन) का चयन करें। फिर "सामाजिक" चुनें। साइन अप करने के बाद, आपको पूरी तरह से कार्यात्मक JRebel लाइसेंस कुंजी मिल जाएगी। फिर आप JRebel डाउनलोड कर सकते हैं या अपने IDEs एम्बेडेड संस्करण में कुंजी का उपयोग कर सकते हैं। पकड़, (हाँ, वहाँ एक पकड़ है), आपको उन्हें अपने एफबी टाइमलाइन या ट्विटर अकाउंट पर महीने में एक बार अपनी ओर से (विज्ञापन) पोस्ट करने की अनुमति देनी होगी। मैंने उन्हें अपना ट्विटर अकाउंट दिया, कोई बड़ी बात नहीं है, मैं इसका इस्तेमाल कभी नहीं करता और कोई भी नहीं जानता कि मैं वास्तव में इसका इस्तेमाल करता हूं। इसलिए $ 260 बचाएं।


14
एक और पकड़ है। यह जेबरेल सोशल केवल गैर-वाणिज्यिक उपयोग के लिए स्वतंत्र है। हां, निश्चित रूप से, हम यह जांच नहीं करेंगे कि क्या आप वास्तव में अपने निजी प्रोजेक्ट के लिए या काम पर इसका उपयोग कर रहे हैं, लेकिन यदि वे आपको सॉफ़्टवेयर का दुरुपयोग करते हुए देखते हैं, तो ऑडिटर इसे पसंद नहीं कर सकते हैं।
एंटोन अरिपोव

2
मैं कभी सुझाव नहीं दूंगा। वास्तव में - इसका एकमात्र कारण मैं इसे उठाता हूं क्योंकि अब कोई "व्यक्तिगत" लाइसेंस नहीं है। मैं अपनी कंपनी को अपने काम के लाइसेंस के लिए भुगतान करने में सक्षम था। मैंने तब एक निजी लाइसेंस के लिए, अपने व्यक्तिगत उपयोग के लिए, 3 साल से अधिक के लिए भुगतान किया था। लेकिन जब कीमत जब $ 260 के उत्तर में एक वर्ष, वह अव्यवहारिक हो गया। यह मेरे (और अन्य) के लिए सबसे अच्छा समाधान है, लेकिन मैं भी इसके लिए भुगतान करता रहता अगर कीमत उचित होती।
एंड्रयू में माइकल एंड्रयूज

42
इसके अलावा, तथ्य यह है कि हर साल मुझे पहले से खरीदे गए सॉफ़्टवेयर को पुनर्खरीद करने की आवश्यकता होती है। कोई दूसरी कंपनी ऐसा नहीं करती। आमतौर पर आप एक बार सॉफ्टवेयर खरीदते हैं। यदि आप अपग्रेड करने का विकल्प चुनते हैं - तो आप इसे पूरी कीमत (या कंपनी के आधार पर शायद अपग्रेड प्राइस) के लिए खरीद सकते हैं। लेकिन इसके बाद आप जो भुगतान कर रहे हैं वह नई सुविधाएँ हैं - वही सुविधाएँ जो आपने पहले से भुगतान की हैं। यह Apple या Microsoft की तरह होगा जब तक आप ओएस के लिए भुगतान नहीं करते, तब तक आप हर साल अपने कंप्यूटर को अक्षम कर सकते हैं। सोच के लिए भोजन।
माइकल एंड्रयूज 20

2
JRebel सोशल को myJRebel से बदल दिया गया है। गैर-व्यावसायिक उपयोग के लिए इसका मुफ्त, आपको केवल आँकड़ों के बंटवारे की अनुमति देने की आवश्यकता है: my.jrebel.com
स्टीव स्विंसबर्ग

1
सब के सब, JRebel एक डेवलपर सॉफ्टवेयर लाइसेंस के लिए अपेक्षाकृत सस्ता है।
जेरेड हूपर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.