JShell และ Import
JShell เป็นเครื่องมือ REPL สำหรับเรียนรู้และ prototype โค้ด Java โดยมีการ import package พื้นฐานบางส่วนอัตโนมัติเมื่อเริ่ม session
ดู Import เริ่มต้น
jshell> /imports | import java.io.* | import java.math.* | import java.net.* | import java.nio.file.* | import java.util.* | import java.util.concurrent.* | import java.util.function.* | import java.util.prefs.* | import java.util.regex.* | import java.util.stream.* | import javax.mail.internet.InternetAddress
ปัญหา: Import External Library ไม่ได้
ลอง import javax.mail.internet.InternetAddress จะ error เพราะ package ไม่อยู่ใน classpath
jshell> import javax.mail.internet.InternetAddress | Error: | package javax.mail.internet does not exist | import javax.mail.internet.InternetAddress; | ^---------------------------------^
แก้ไข: เพิ่ม JAR เข้า Classpath
ใช้คำสั่ง /env --class-path
jshell> /env --class-path \Users\user\mail-1.4.7.jar | Setting new options and restoring state. jshell> import javax.mail.internet.InternetAddress
ทดสอบสร้าง Object
jshell> InternetAddress from = new InternetAddress("a@a")
from ==> a@a
สรุปขั้นตอน
- ดู import เริ่มต้นด้วย
/imports - หา JAR file ของ library ที่ต้องการ
- เพิ่ม classpath ด้วย
/env --class-path <path-to-jar> - import class ตามปกติ
หมายเหตุ
JShell จะ reset state เมื่อเปลี่ยน classpath ดังนั้นตัวแปรเก่าจะหายไป