JShell 中的 JDK 工具访问 - 一口 Java
Billy Korando 于 2023 年 10 月 23 日
JShell 工具(最初在 JDK 9 中添加的 REPL)已在 JDK 21 中更新,以提供对 JDK 工具的更好访问。我们来看看吧!
TOOLING 脚本
从 JShell 访问 JDK 工具需要加载新的 TOOLING
脚本。它可以在 JShell 初始化时使用以下命令加载
$ jshell TOOLING
或者使用 /open
命令从 JShell 中加载,如下所示
jshell> /open TOOLING
在 JShell 中使用 JDK 工具
TOOLING 脚本允许访问以下 JDK 工具
jar
javac
javadoc
javap
jdeps
jmod
jlink
jpackage
这些工具作为 JShell 中的方法加载,并且工具将采用的参数类型会各不相同。在下面的示例中,javap
采用 Class
参数
jshell> [tool-name](Object args…)
jshell> interface Empty {}
jshell> javap(Empty.class)
然而,jar
将采用 String
数组
jshell> jar("--create", \
"--file=target/HelloWorld-jshell.jar", \
"--main-class=my.org.HelloWorld",\ "my/org/HelloWorld.class")
使用 JShell 的优势
从 JShell 使用 JDK 工具的一个优势在于 JShell 与平台无关,并且将处理文件路径转换等事项,因此使用 jar
的此命令将在 Linux、macOS 和 Windows 上运行
jshell> jar("--create", \
"--file=target/HelloWorld-jshell.jar", \
"--main-class=my.org.HelloWorld",\
"my/org/HelloWorld.class")
其他阅读材料
编码愉快!