JShell হলো একটি ইন্টারেক্টিভ জাভা শেল টুল যা JShell-এ서 কোড এক্সিকিউট করে এবং ইনস্ট্যান্ট আউটপুট দেখায়। JShell REPL (Read-Evaluate-Print-Loop) টুল যা কমান্ড-লাইন প্রম্পট থেকে রান করা যায়।
JShell-এ, স্টার্টআপে একটি স্ক্রিপ্ট লোড করার অপশন থাকে যাতে কিছু স্পেশাল প্রিডিফাইনড অপশন থাকে। এগুলো "--startup" ফ্ল্যাগ ব্যবহার করে সপেসিফাই করা যায় একটি ফাইলনেম বা DEFAULT, JAVASE, এবং PRINTING-এ से একটা পাস করে। আমরা "/list -start" কমান্ড ব্যবহার করে সব স্টার্টআপ স্নিপেট দেখতে পারি যেগুলো ইভ্যালুয়েট করা হবে।
- DEFAULT: এটি ডিফল্ট বিহেভিয়ার লোড করে। এটি একই কাজ করে যদি এটি স্পেসিফাই না করা হয়।
- JAVASE: এটি ডিফল্টভাবে সকল Java SE প্যাকেজ ইম্পোর্ট করে।
- PRINTING: এটি print, println এবং printf ফাংশন ডিফাইন করে ব্যবহার করার জন্য।
নিচের কোড স্নিপেটে, আমরা "DEFAULT" স্টার্টআপ স্ক্রিপ্ট হিসেবে ব্যবহার করতে পারি।
C:\Users\User>jshell --startup DEFAULT | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> /list -start s1 : import java.io.*; s2 : import java.math.*; s3 : import java.net.*; s4 : import java.nio.file.*; s5 : import java.util.*; s6 : import java.util.concurrent.*; s7 : import java.util.function.*; s8 : import java.util.prefs.*; s9 : import java.util.regex.*; s10 : import java.util.stream.*;
নিচের কোড স্নিপেটে, আমরা "JAVASE" স্টার্টআপ স্ক্রিপ্ট হিসেবে ব্যবহার করতে পারি।
C:\Users\User>jshell --startup JAVASE | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> /list -start s1 : import java.applet.*; s2 : import java.awt.*; s3 : import java.awt.color.*; s4 : import java.awt.datatransfer.*; s5 : import java.awt.desktop.* s6 : import java.awt.dnd.*; s7 : import java.awt.event.*; s8 : import java.awt.font.*; s9 : import java.awt.geom.*; s10 : import java.awt.im.*; s11 : import java.awt.im.spi.*; s12 : import java.awt.image.*; s13 : import java.awt.image.renderable.* s14 : import java.awt.print.* s15 : import java.beans.* s16 : import java.beans.beancontext.* s17 : import java.io.* s18 : import java.lang.* s19 : import java.lang.annotation.* s20 : import java.lang.instrument.* s21 : import java.lang.invoke.* s22 : import java.lang.management.* s23 : import java.lang.module.* s24 : import java.lang.ref.* s25 : import java.lang.reflect.* s26 : import java.math.* s27 : import java.net.* s28 : import java.net.spi.* s29 : import java.nio.* s30 : import java.nio.channels.* s31 : import java.nio.channels.spi.* s32 : import java.nio.charset.* s33 : import java.nio.charset.spi.* s34 : import java.nio.file.* s35 : import java.nio.file.attribute.* s36 : import java.nio.file.spi.* s37 : import java.rmi.* s38 : import java.rmi.activation.* s39 : import java.rmi.dgc.* s40 : import java.rmi.registry.* s41 : import java.rmi.server.* s42 : import java.security.* s43 : import java.security.acl.* s44 : import java.security.cert.* s45 : import java.security.interfaces.* s46 : import java.security.spec.* s47 : import java.sql.* s48 : import java.text.* s49 : import java.text.spi.* s50 : import java.time.* s51 : import java.time.chrono.* s52 : import java.time.format.* s53 : import java.time.temporal.* s54 : import java.time.zone.* s55 : import java.util.* s56 : import java.util.concurrent.* s57 : import java.util.concurrent.atomic.* s58 : import java.util.concurrent.locks.* s59 : import java.util.function.* s60 : import java.util.jar.* s61 : import java.util.logging.* s62 : import java.util.prefs.* s63 : import java.util.regex.* s64 : import java.util.spi.* s65 : import java.util.stream.* s66 : import java.util.zip.* s67 : import javax.accessibility.* s68 : import javax.annotation.processing.* s69 : import javax.crypto.* s70 : import javax.crypto.interfaces.* s71 : import javax.crypto.spec.* s72 : import javax.imageio.* s73 : import javax.imageio.event.* s74 : import javax.imageio.metadata.* s75 : import javax.imageio.plugins.bmp.* s76 : import javax.imageio.plugins.jpeg.* s77 : import javax.imageio.plugins.tiff.* s78 : import javax.imageio.spi.* s79 : import javax.imageio.stream.* s80 : import javax.lang.model.* s81 : import javax.lang.model.element.* s82 : import javax.lang.model.type.* s83 : import javax.lang.model.util.* s84 : import javax.management.* s85 : import javax.management.loading.* s86 : import javax.management.modelmbean.* s87 : import javax.management.monitor.* s88 : import javax.management.openmbean.* s89 : import javax.management.relation.* s90 : import javax.management.remote.* s91 : import javax.management.remote.rmi.* s92 : import javax.management.timer.* s93 : import javax.naming.* s94 : import javax.naming.directory.* s95 : import javax.naming.event.* s96 : import javax.naming.ldap.* s97 : import javax.naming.spi.* s98 : import javax.net.* s99 : import javax.net.ssl.* s100 : import javax.print.* s101 : import javax.print.attribute.* s102 : import javax.print.attribute.standard.* s103 : import javax.print.event.* s104 : import javax.rmi.ssl.* s105 : import javax.script.* s106 : import javax.security.auth.* s107 : import javax.security.auth.callback.* s108 : import javax.security.auth.kerberos.* s109 : import javax.security.auth.login.* s110 : import javax.security.auth.spi.* s111 : import javax.security.auth.x500.* s112 : import javax.security.cert.* s113 : import javax.security.sasl.* s114 : import javax.sound.midi.* s115 : import javax.sound.midi.spi.* s116 : import javax.sound.sampled.* s117 : import javax.sound.sampled.spi.* s118 : import javax.sql.* s119 : import javax.sql.rowset.* s120 : import javax.sql.rowset.serial.* s121 : import javax.sql.rowset.spi.* s122 : import javax.swing.* s123 : import javax.swing.border.* s124 : import javax.swing.colorchooser.* s125 : import javax.swing.event.* s126 : import javax.swing.filechooser.* s127 : import javax.swing.plaf.* s128 : import javax.swing.plaf.basic.* s129 : import javax.swing.plaf.metal.* s130 : import javax.swing.plaf.multi.* s131 : import javax.swing.plaf.nimbus.* s132 : import javax.swing.plaf.synth.* s133 : import javax.swing.table.* s134 : import javax.swing.text.* s135 : import javax.swing.text.html.* s136 : import javax.swing.text.html.parser.* s137 : import javax.swing.text.rtf.* s138 : import javax.swing.tree.* s139 : import javax.swing.undo.* s140 : import javax.tools.* s141 : import javax.transaction.xa.* s142 : import javax.xml.* s143 : import javax.xml.catalog.* s144 : import javax.xml.crypto.* s145 : import javax.xml.crypto.dom.* s146 : import javax.xml.crypto.dsig.* s147 : import javax.xml.crypto.dsig.dom.* s148 : import javax.xml.crypto.dsig.keyinfo.* s149 : import javax.xml.crypto.dsig.spec.* s150 : import javax.xml.datatype.* s151 : import javax.xml.namespace.* s152 : import javax.xml.parsers.* s153 : import javax.xml.stream.* s154 : import javax.xml.stream.events.* s155 : import javax.xml.stream.util.* s156 : import javax.xml.transform.* s157 : import javax.xml.transform.dom.* s158 : import javax.xml.transform.sax.* s159 : import javax.xml.transform.stax.* s160 : import javax.xml.transform.stream.* s161 : import javax.xml.validation.* s162 : import javax.xml.xpath.* s163 : import org.ietf.jgss.* s164 : import org.w3c.dom.* s165 : import org.w3c.dom.bootstrap.* s166 : import org.w3c.dom.events.* s167 : import org.w3c.dom.ls.* s168 : import org.w3c.dom.ranges.* s169 : import org.w3c.dom.traversal.* s170 : import org.w3c.dom.views.* s171 : import org.xml.sax.* s172 : import org.xml.sax.ext.* s173 : import org.xml.sax.helpers.*;
নিচের কোড স্নিপেটে, আমরা "PRINTING" স্টার্টআপ স্ক্রিপ্ট হিসেবে ব্যবহার করতে পারি।
C:\Users\User>jshell --startup PRINTING
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro
jshell> /list -start
s1 : void print(boolean b) { System.out.print(b); }
s2 : void print(char c) { System.out.print(c); }
s3 : void print(int i) { System.out.print(i); }
s4 : void print(long l) { System.out.print(l); }
s5 : void print(float f) { System.out.print(f); }
s6 : void print(double d) { System.out.print(d); }
s7 : void print(char s[]) { System.out.print(s); }
s8 : void print(String s) { System.out.print(s); }
s9 : void print(Object obj) { System.out.print(obj); }
s10 : void println() { System.out.println(); }
s11 : void println(boolean b) { System.out.println(b); }
s12 : void println(char c) { System.out.println(c); }
s13 : void println(int i) { System.out.println(i); }
s14 : void println(long l) { System.out.println(l); }
s15 : void println(float f) { System.out.println(f); }
s16 : void println(double d) { System.out.println(d); }
s17 : void println(char s[]) { System.out.println(s); }
s18 : void println(String s) { System.out.println(s); }
s19 : void println(Object obj) { System.out.println(obj); }
s20 : void printf(java.util.Locale l, String format, Object... args) { System.out.printf(l, format, args); }
s21 : void printf(String format, Object... args) { System.out.printf(format, args); }