Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะบันทึกเซสชัน JShell ปัจจุบันใน Java 9 ได้อย่างไร


Java 9 ได้แนะนำคุณสมบัติใหม่คือการสร้าง REPL (อ่าน-ประเมิน-พิมพ์-วนซ้ำ ) เรียกว่า JShell . เป็น บรรทัดคำสั่ง เครื่องมือพร้อมต์เพื่อประเมินโค้ด Java โดยไม่ต้องเขียนโปรแกรมให้สมบูรณ์

เมื่อเราสามารถป้อนโค้ดหรือคำสั่งภายในใน JShell ได้ เราจำเป็นต้องใช้ระหว่างเซสชันปัจจุบัน เมื่อเราสามารถปิด JShell และเข้าสู่ระบบได้อีกครั้ง รหัสทั้งหมดที่เคยป้อนไว้ก่อนหน้านี้จะสูญหายไป มีการใช้คำสั่งภายในเพื่อบันทึกรหัสทั้งหมดที่ป้อนลงในไฟล์โดยใช้คำสั่ง "/save " คำสั่ง

/ save [file-path]
/ save -all [file-path]
/ save -history [file-path]
/ save -start [file-path]
  • /save [เส้นทางไฟล์]: โดยไม่มีอาร์กิวเมนต์ คำสั่งนี้จะบันทึกโค้ดที่ใช้งานอยู่ทั้งหมดที่ป้อนระหว่างเซสชันในไฟล์ที่ป้อนในอาร์กิวเมนต์ที่สอง โปรดทราบว่ารหัสที่ป้อนผิดพลาดและคำสั่งภายในจะไม่ถูกบันทึกในไฟล์
  • /save -all [file-path]: บันทึกรหัสที่ใช้งานอยู่ทั้งหมด เกิดข้อผิดพลาดและเมื่อเริ่มต้น ป้อนระหว่างเซสชัน ในไฟล์ที่ป้อนเป็นอาร์กิวเมนต์ที่สอง คำสั่งซื้อภายในที่ป้อนจะไม่ถูกบันทึก
  • /save -history [file-path]: บันทึกรหัสและคำสั่งทั้งหมดที่ป้อนระหว่างเซสชันในไฟล์ที่ป้อนในอาร์กิวเมนต์ที่สอง แม้แต่คำสั่งภายในก็ยังถูกบันทึกไว้ในไฟล์
  • /save -start :บันทึกโค้ดทั้งหมดที่เปิดใช้งานเมื่อ JShell เริ่มได้

ในข้อมูลโค้ดด้านล่าง โค้ดที่ป้อนใน JShell จะถูกบันทึกไว้ในไฟล์ต่างๆ ขึ้นอยู่กับตัวเลือกที่ป้อนหลังจาก "/save" สั่งการ. เราจำเป็นต้องบันทึกไฟล์เหล่านั้นในไดเร็กทอรีด้วย ".jsh " ส่วนขยาย

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