JShell জাভা ল্যাঙ্গুয়েজ শেখার এবং প্রোটোটাইপিং করার জন্য একটি ইন্টারেক্টিভ টুল। এটি একটি REPL (Read-Evaluate-Print-Loop) যা ইনপুট দেওয়া ডিক্লেরেশন, স্টেটমেন্ট, এবং এক্সপ্রেশন ইভ্যালুয়েট করে এবং তাৎক্ষণিক ফলাফল JShell-এ প্রিন্ট করে। এই টুল কম্যান্ড-লাইন প্রম্পট থেকে চলে।
public, protected, private, static, এবং final মডিফায়ারগুলো টপ-লেভেল (top-level) ডিক্লেরেশনে অনুমোদিত নয় এবং এগুলো একটি ওয়ার্নিং (warning) দিয়ে উপেক্ষা করা হয়। synchronized, native, abstract, এবং ডিফল্ট টপ-লেভেল মেথডের কീവার্ডগুলো অনুমোদিত নয় এবং এগুলো এরর (error) হয়।
নিচের কোড স্নিপেটে, আমরা ফাইনাল (final) এবং স্ট্যাটিক (static) ভেরিয়েবল তৈরি করেছি। এটি ইউজারকে একটি ওয়ার্নিং মেসেজ প্রিন্ট করে: "Modifier 'final' or 'static' not permitted in top-level declarations, ignored"।
উদাহরণ-১
C:\Users\User>jshell | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> final int x = 0 | Warning: | Modifier 'final' not permitted in top-level declarations, ignored | final int x = 0; | ^---^ x ==> 0 jshell> x = 1 x ==> 1
উদাহরণ-২
jshell> static String str = "Tutorix" | Warning: | Modifier 'static' not permitted in top-level declarations, ignored | static String str = "Tutorix"; | ^----^ str ==> "Tutorix"