JShell (REPL Java 9) thực thi code và hiển thị kết quả tức thì. Nếu dùng biến chưa khai báo, JShell báo lỗi biên dịch với dấu ^--^ chỉ vị trí lỗi.
Ví dụ lỗi: dùng biến chưa khai báo
jshell> int div = num1 / num2 | Error: | cannot find symbol | symbol: variable num1 | int div = num1 / num2; | ^^ | Error: | cannot find symbol | symbol: variable num2 | int div = num1 / num2; | ^^
Sửa: khai báo biến trước
jshell> int num1 = 35 num1 ==> 35 jshell> int num2 = 7 num2 ==> 7 jshell> int div = num1 / num2 div ==> 5
Nguyên tắc tránh lỗi
- Khai báo trước, dùng sau: JShell thực thi tuần tự, biến phải tồn tại trước khi dùng.
- Chú ý dấu
^--^: Chỉ chính xác vị trí lỗi trong dòng code. - Sửa ngay tại chỗ: Gõ lại dòng code đúng, JShell sẽ ghi đè snippet cũ.
- Dùng /list xem lại các snippet đã nhập.
- Dùng /edit mở editor ngoài để sửa code phức tạp.
Đặc điểm JShell vs Java thường
| Đặc điểm | Java thường | JShell |
|---|---|---|
| Biến chưa khai báo | Lỗi compile-time | Lỗi runtime (khi gõ dòng đó) |
| Sửa lỗi | Sửa file → compile lại | Gõ lại dòng → kết quả ngay |
| Trạng thái | Mỗi run độc lập | Giữ trạng thái giữa các snippet |
JShell cho phép "trial-and-error" nhanh: sai thì sửa ngay, không cần chu trình compile-run đầy đủ.