Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để lưu phiên JShell hiện tại trong Java 9?


Java 9 đã giới thiệu một tính năng mới là tạo REPL ( Đọc-Đánh giá-In-Vòng lặp ) được gọi là JShell . Đây là một dòng lệnh công cụ nhanh chóng để đánh giá mã Java mà không cần phải viết một chương trình hoàn chỉnh.

Khi chúng ta có thể nhập mã hoặc lệnh nội bộ trong JShell, chúng ta cần sử dụng nó trong phiên hiện tại. Khi chúng ta có thể đóng JShell và đăng nhập lại, tất cả mã đã nhập trước đó đã bị mất. Một lệnh nội bộ đã được triển khai để lưu tất cả mã được nhập vào tệp bằng cách sử dụng " / save "lệnh.

/ save [file-path]
/ save -all [file-path]
/ save -history [file-path]
/ save -start [file-path]
  • / save [file-path]: không có đối số, lệnh này lưu tất cả mã hoạt động được nhập trong phiên trong tệp được nhập trong đối số thứ hai. Xin lưu ý rằng mã đã nhập bị lỗi và các lệnh nội bộ không được lưu trong tệp.
  • / save -all [file-path]: lưu tất cả mã đang hoạt động, bị lỗi và khi khởi động, được nhập trong phiên, trong tệp được nhập làm đối số thứ hai. Các đơn đặt hàng nội bộ đã nhập không được ghi lại.
  • / save -history [file-path]: lưu tất cả mã và lệnh đã nhập trong phiên, trong tệp được nhập trong đối số thứ hai. Ngay cả các lệnh nội bộ cũng được lưu trong tệp.
  • / save -start :lưu tất cả mã được khởi chạy khi JShell bắt đầu.

Trong đoạn mã dưới đây, mã đã nhập trong JShell được lưu trong các tệp khác nhau, tùy thuộc vào tùy chọn được nhập sau "/ save" yêu cầu. Chúng tôi cần lưu các tệp đó trong thư mục có " .jsh "phần mở rộng

C:\Users\User>jshell
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro

jshell> int x = 20
x ==> 20

jshell> double y = 30
y ==> 30.0

jshell> public int sum(int a, int b) {
...>       return a + b;
...>    }
| created method sum(int,int)

jshell> String str = "TutorialsPoint"
str ==> "TutorialsPoint"

jshell> /list

1 : int x = 20;
2 : double y = 30;
3 : public int sum(int a, int b) {
       return a + b;
    }
4 : String str = "TutorialsPoint";

jshell> int var = "error"
|   Error:
|   incompatible types: java.lang.String cannot be converted to int
|   int var = "error";
|   ^-----^

jshell> /save C:\Users\User\save.jsh

jshell> /save -all C:\Users\User\saveAll.jsh

jshell> /save -history C:\Users\User\saveHistory.jsh

jshell> /save -start C:\Users\User\saveStart.jsh