জেশেল (JShell) জাভা ল্যাঙ্গুয়েজ শেখার ও জাভা কোড প্রোটোটাইপ করার একটি ইন্টারেক্টিভ টুল। জেশেল ইউজারের টাইপ করা কমান্ড ইভ্যালুয়েট করে কাজ করে। এটি REPL (Read-Evaluate-Print-Loop) প্রিন্সিপলে কাজ করে।
ডিফল্টভাবে জেশেল সেশন শুরু হলে কিছু উপকারী জাভা প্যাকেজ অটোমেটিক্যালি ইম্পোর্ট করে। /imports কমান্ড দিয়ে সব ইম্পোর্টের লিস্ট দেখা যায়।
jshell> /imports | import java.io.* | import java.math.* | import java.net.* | import java.nio.file.* | import java.util.* | import java.util.concurrent.* | import java.util.function.* | import java.util.prefs.* | import java.util.regex.* | import java.util.stream.* | import javax.mail.internet.InternetAddress
এক্সটার্নাল লাইব্রেরি ইম্পোর্ট করা
যদি javax.mail.internet প্যাকেজের InternetAddress অবজেক্ট তৈরি করতে চাই, তবে সেই প্যাকেজ ইম্পোর্ট করতে হবে।
jshell> import javax.mail.internet.InternetAddress | Error: | package javax.mail.internet does not exist | import javax.mail.internet.InternetAddress; | ^---------------------------------^
শুধু ক্লাস ইম্পোর্ট করলে কাজ করে না কারণ প্যাকেজটি ক্লাসপাথে অজানা। জার (jars) বা ক্লাস ফাইল ক্লাসপাথে যোগ করতে হয় /env --class-path <jars, class files> কমান্ড দিয়ে।
jshell> /env --class-path \Users\user\mail-1.4.7.jar | Setting new options and restoring state. jshell> import javax.mail.internet.InternetAddress
এখন InternetAddress অবজেক্ট তৈরি করা যাবে:
jshell> InternetAddress from = new InternetAddress("a@a")
from ==> a@a