Java 9 ने एक नई सुविधा पेश की है जिसे REPL (Read-Evaluate-Print-Loop) कहा जाता है, जिसे JShell कहा जाता है। यह एक कमांड-लाइन प्रॉम्प्ट टूल है जो बिना पूरा प्रोग्राम लिखे Java कोड का मूल्यांकन करता है।
जब हम JShell में कोड या आंतरिक कमांड दर्ज करते हैं, तो हमें इसे वर्तमान सत्र के दौरान उपयोग करने की आवश्यकता होती है। जब हम JShell को बंद करते हैं और फिर से लॉग इन करते हैं, तो पहले दर्ज किया गया सारा कोड खो जाता है। वर्तमान सत्र के दौरान दर्ज किए गए सभी कोड को फाइल में सेव करने के लिए एक आंतरिक कमांड लागू किया गया है, जिसका उपयोग "/save" कमांड का उपयोग करके किया जाता है।
/ save [file-path] / save -all [file-path] / save -history [file-path] / save -start [file-path]
- /save [file-path]: बिना तर्क के, यह कमांड सत्र के दौरान दर्ज किए गए सभी सक्रिय कोड को दूसरे तर्क में दर्ज फाइल में सेव करता है। ध्यान दें कि त्रुटि में दर्ज कोड और आंतरिक कमांड फाइल में सेव नहीं होते हैं।
- /save -all [file-path]: सत्र के दौरान दर्ज किए गए सभी सक्रिय कोड, त्रुटि में और स्टार्टअप पर, दूसरे तर्क के रूप में दर्ज फाइल में सेव करता है। दर्ज आंतरिक ऑर्डर रिकॉर्ड नहीं किए जाते हैं।
- /save -history [file-path]: सत्र के दौरान दर्ज किए गए सभी कोड और कमांड को दूसरे तर्क में दर्ज फाइल में सेव करता है। यहां तक कि आंतरिक कमांड भी फाइल में सेव हो जाती हैं।
- /save -start: JShell शुरू होने पर लॉन्च किए गए सभी कोड को सेव करता है।
नीचे दिए गए कोड स्निपेट में, JShell में दर्ज कोड को "/save" कमांड के बाद दर्ज विकल्प के आधार पर अलग-अलग फाइलों में सेव किया जाता है। हमें उन फाइलों को ".jsh" एक्सटेंशन के साथ एक डायरेक्टरी में सेव करने की आवश्यकता है।
C:\Users\User>jshell | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> int x = 20 x ==> 20 jshell> double y = 30 y ==> 30.0 jshell> public int sum(int a, int b) { ...> return a + b; ...> } | created method sum(int,int) jshell> String str = "TutorialsPoint" str ==> "TutorialsPoint" jshell> /list 1 : int x = 20; 2 : double y = 30; 3 : public int sum(int a, int b) { return a + b; } 4 : String str = "TutorialsPoint"; jshell> int var = "error" | Error: | incompatible types: java.lang.String cannot be converted to int | int var = "error"; | ^-----^ jshell> /save C:\Users\User\save.jsh jshell> /save -all C:\Users\User\saveAll.jsh jshell> /save -history C:\Users\User\saveHistory.jsh jshell> /save -start C:\Users\User\saveStart.jsh