如何在Java 9中的JShell中导入外部库?

JShell 是一个交互式工具,用于学习Java语言和原型化Java代码。JShell通过评估用户在其中键入的命令来完成工作。该工具根据REPL (读取-评估-打印循环)的原理工作。

默认情况下,启动JShell会话时,JShell会自动导入一些有用的Java程序包。我们可以键入命令 / imports 以获取所有这些导入的列表。

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


我们还可以通过以下步骤在JShell中导入外部库

如果我们要创建一个驻留在j avax.mail.internet 包中的InternetAddress 对象,则需要将该包导入JShell中。

jshell> import javax.mail.internet.InternetAddress
| Error:
| package javax.mail.internet does not exist
| import javax.mail.internet.InternetAddress;
| ^---------------------------------^


在上面的方法中,仅导入类无效,因为该包对于classpath未知的。我们需要使用以下命令将jar 类 文件添加到c lasspath :“ / env –class-path <jars,class files>

jshell> /env --class-path \Users\user\mail-1.4.7.jar
| Setting new options and restoring state.

jshell> import javax.mail.internet.InternetAddress


最后,我们可以使用以下命令创建一个InternetAddress 对象

jshell> InternetAddress from = new InternetAddress("a@a")
from ==> a@a