JShell Java 9 का REPL (Read-Eval-Print Loop) टूल है जो कोड स्निपेट्स के त्वरित निष्पादन की अनुमति देता है। एक स्निपेट एक निर्देश है जो मानक Java सिंटैक्स का उपयोग करता है - अभिव्यक्ति, कथन, या घोषणा।
JShell नियम और प्रतिबंध
1. अनुमत स्निपेट प्रकार
- आयात घोषणाएं
- कक्षा घोषणाएं
- इंटरफेस घोषणाएं
- विधि घोषणाएं
- फील्ड घोषणाएं
- कथन
- प्राथमिक अभिव्यक्तियां
2. प्रतिबंधित घोषणाएं
| घोषणा | अनुमत? | नोट |
|---|---|---|
| पैकेज घोषणा | ❌ नहीं | JShell कोड transient JShell पैकेज में रखा जाता है |
| public/protected/private (टॉप-लेवल) | ⚠ अनदेखा | चेतावनी के साथ अनदेखा किया जाता है |
| final/static (टॉप-लेवल) | ⚠ अनदेखा | चेतावनी के साथ अनदेखा किया जाता है |
| default/synchronized (टॉप-लेवल) | ❌ नहीं | त्रुटि, लेकिन नेस्टेड संदर्भ में अनुमत |
| abstract (टॉप-लेवल) | केवल कक्षाओं में | विधियों/फील्ड्स के लिए नहीं |
| कमांड | विवरण |
|---|---|
/list | सभी स्निपेट्स सूचीबद्ध करें |
/list -all | विफल/अस्वीकृत स्निपेट्स सहित |
/list -start | स्टार्टअप स्निपेट्स सूचीबद्ध करें |
/vars | चर सूचीबद्ध करें |
/methods | विधियां सूचीबद्ध करें |
/types | कक्षाएं/इंटरफेस सूचीबद्ध करें |
/imports | आयात सूचीबद्ध करें |
/edit <id|name> | बाहरी संपादक में संपादित करें |
/drop <id|name> | स्निपेट हटाएं |
/save file.jsh | सत्र सहेजें |
/open file.jsh | सत्र लोड करें |
/history | कमांड इतिहास |
/help | सहायता |
/exit | JShell से बाहर निकलें |
/env | वातावरण सेटिंग्स |
/reset | सत्र रीसेट करें (सभी स्निपेट्स हटाएं) |
उन्नत सुविधाएं
ऑटो-कम्प्लीशन
jshell> System.out. // Tab दबाएं
print( printf( println(
एक्सप्रेशन परिणाम चर ($)
jshell> 2 + 3
$1 ==> 5
jshell> $1 * 10
$2 ==> 50
jshell> String s = "test"
s ==> "test"
jshell> s.toUpperCase()
$4 ==> "TEST"
एक्सेप्शन संचालन
jshell> int x = 10 / 0
| Exception java.lang.ArithmeticException: / by zero
| at (#1:1)
jshell> // पिछला स्निपेट अभी भी इतिहास में है लेकिन विफल के रूप में चिह्नित
ओवरलोडिंग और रिप्लेसमेंट
jshell> void print(String s) { System.out.println(s); }
| created method print(String)
jshell> void print(int i) { System.out.println("Int: " + i); }
| created method print(int)
jshell> print("hello")
hello
jshell> print(42)
Int: 42
jshell> // समान सिग्नेचर से बदलें
jshell> void print(String s) { System.out.println(">> " + s); }
| modified method print(String)
सर्वोत्तम अभ्यास
- एक्सप्लोरेशन के लिए उपयोग करें: API सीखें, रेगेक्स टेस्ट करें, एल्गोरिदम प्रोटोटाइप करें
- सत्र सहेजें:
/saveबाद के लिए उपयोगी स्निपेट्स संरक्षित करता है - रीसेट सावधानी से:
/resetसब कुछ साफ़ करता है - बाहरी संपादक:
/editजटिल कक्षाओं के लिए $EDITOR खोलता है - सेमीकोलन वैकल्पिक: अभिव्यक्तियों और पूर्ण कथनों के लिए
सीमाएं
- कोई पैकेज घोषणा नहीं
- टॉप-लेवल एक्सेस मॉडिफायर्स अनदेखे किए जाते हैं
- बड़े प्रोजेक्ट्स के लिए IDE प्रतिस्थापन नहीं
- राज्य मेमोरी में है (डिस्क पर सहेजे बिना खो जाता है)
- कुछ एडवांस्ड भाषा सुविधाएं प्रतिबंधित हो सकती हैं
-
जावा 9 में JShell में बाहरी घोषणाओं के नियम क्या हैं?
JShell जावा 9 में पेश किया गया एक कमांड-लाइन टूल है, और यह जावा का पहला आधिकारिक REPL टूल है जो एक सरल प्रोग्रामिंग वातावरण बनाता है जो उपयोगकर्ता के इनपुट को पढ़ता है, उसका मूल्यांकन करता है, और परिणाम प्रिंट करता है। एक क्लास या इंटरफेस के बाहर की घोषणाएं (और स्वयं कक्षाओं
-
जावा 9 में JShell में विभिन्न स्टार्टअप स्क्रिप्ट क्या हैं?
JShell एक इंटरैक्टिव जावा शेल टूल है जो JShell से कोड निष्पादित करता है और तुरंत आउटपुट प्रदर्शित करता है। JShell REPL (रीड-इवैल्यूएट-प्रिंट-लूप) टूल है जिसे कमांड-लाइन प्रॉम्प्ट से चलाया जा सकता है। JShell में, स्टार्टअप पर एक स्क्रिप्ट लोड करने का विकल्प होता है जिसमें कुछ विशेष पूर्वनि
-
जावा 9 में JShell में विभिन्न /edit कमांड्स
JShell जावा 9 में पेश किया गया एक कमांड-लाइन टूल है जो main() मेथड के बिना डिक्लेरेशन्स, स्टेटमेंट्स, और एक्सप्रेशन्स का मूल्यांकन करता है। JShell एक टेक्स्ट एडिटर सेट कर सकता है जिसे JShell Edit Pad कहा जाता है, जो कोड को बहुत आसानी से संशोधित करने की अनुमति देता है, और इसे /edit कमांड का उपयोग करक