JShell là công cụ Java Shell tương tác thực thi code từ JShell và hiển thị output ngay. JShell là công cụ REPL (Read-Evaluate-Print-Loop) chạy từ command-line prompt.
Trong JShell, có tùy chọn load script khi khởi động bao gồm các option định sẵn đặc biệt. Chỉ định bằng cờ --startup truyền vào filename hoặc một trong DEFAULT, JAVASE, PRINTING. Dùng lệnh /list -start xem tất cả startup snippet được đánh giá.
- DEFAULT: Load hành vi mặc định. Tương tự như không chỉ định.
- JAVASE: Import tất cả Java SE packages mặc định.
- PRINTING: Định nghĩa hàm print, println, printf để dùng.
Đoạn mã dưới dùng DEFAULT làm startup script.
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.*;
Đoạn mã dưới dùng JAVASE làm startup script.
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.*;
...
s173 : import org.xml.sax.helpers.*;
Đoạn mã dưới dùng PRINTING làm startup script.
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); }