2016-06-23 27 views
7

Java 9 जेडीके वितरण के अंदर JShell नामक आरईपीएल पेश कर रहा है। क्या जेडीके के जेएसएचएल में कनेक्ट करने का कोई तरीका है जो कुछ एप्लिकेशन चला रहा है और चल रहे ऐप का संदर्भ देने वाले कमांड निष्पादित करता है। उदाहरण के लिए कुछ तरीकों को निष्पादित करना ऐप्स कोड, ऑब्जेक्ट का निरीक्षण, आदि ..?जावा 9 आरपीएल एप चलाने के लिए

+0

क्या अन्य आरईपीएल में ऐसा करना संभव है? –

+2

नहीं, यह जेएसहेल का लक्ष्य नहीं है। लक्ष्य आपको तेजी से मानेर में जावा स्टेटमेंट को निकालने देना है। जेएसएलएल आपको समय बचाने में मदद के लिए आस-पास के संदर्भ प्रदान करेगा, आप उसे अपने आसपास के संदर्भ के रूप में आवेदन करने के लिए नहीं कह सकते हैं। –

+1

@ बिगडेस्ट्रायर वहां क्रैश खोल है जो मैंने कुछ उल्लेख किया है http://www.crashub.org/ –

उत्तर

4

जेएसएचएल मानक जावा कमांड नहीं है, यह एक और आदेश है। एक बार जब आप खोल खोलते हैं तो इसे पढ़ें इवल प्रिंट लूप में "चला जाता है"। एक बार जब आप कमांड टाइप करते हैं तो इसे खोल द्वारा पढ़ा और पार्स किया जाता है, मूल्यांकन किया जाता है और परिणाम मुद्रित होता है।

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

ऐसा लगता है कि जेएसएचएल में एपीआई होगा, जो अन्य संभावनाओं के लिए रास्ता खोलता है।

1

नहीं, आसानी से jshell के साथ नहीं।

लेकिन मेरे अपने प्रश्न अलग तरीके से व्यक्त ताकि हम jshell का उपयोग नहीं करते लेकिन जो कुछ भी आरईपीएल जावा उपकरण करते हैं:

वहाँ कि चल रहा है को संदर्भित एक चल जावा आवेदन के खिलाफ कुछ आरईपीएल जावा उपकरण कनेक्ट करने और आदेश पर अमल करने के लिए कोई तरीका है एप्लिकेशन। उदाहरण के लिए कुछ तरीकों को निष्पादित करना ऐप्स कोड, ऑब्जेक्ट का निरीक्षण, आदि ..?

https://github.com/lorenzoongithub/nudge4j

तो आप nudge4j पर एक नज़र यह वास्तव में है कि

कुछ BeanShell की तरह ही चेतावनी जावा 8.

0

वैकल्पिक विकल्प है कि आप विचार कर सकते हैं के लिए है की अनुमति मिल जाएगी लेना चाहिए (हालांकि बीनशेल काफी पुराना है और शायद बहिष्कृत है)। आप अपने एप्लिकेशन के अंदर से बीनशेल कंसोल लॉन्च कर सकते हैं जो आपको उन वस्तुओं को एक्सेस करने और उन पर कॉल विधियों तक पहुंचने की अनुमति देगा। कुछ विचारों के लिए JConsole उदाहरण देखें।

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