[Java Shell 指南] 脚本和启动脚本

yufei       6 年, 2 月 前       950

JShell 终于要讲解完了,作为倒数第二章节,我们来讲讲 JShell 中的脚本 ( Script )。

首先,我们先来看看什么是 JShell Script 。

按照官方给的定义,一个 JShell Script 是放在文件中的一系列代码片段和 JShell 命令,其中每个代码片段或命令独占一行。

JShell 脚本可以一个本地文件,也可以是以下预定义的文件之一:

脚本名称 脚本内容
DEFAULT 包含了通用的导入 ( import ) 声明,这是一个默认脚本,如果没有指定其它启动脚本,则会默认使用它
PRINTING 定义了一个打印脚本,会把所有输入输出重定向到 PrintStream 类中的 printprintln()printf 方法
JAVASE 会导入 java.se 模块中定义的 Java SE 核心 API。因为 java.se 模块中的包数量太多,使用这个脚本可能会导致启动延时

JShell 启动脚本

启动脚本包含了启动 JShell 会话时加载的代码片段和命令。默认的启动脚本会包含常见的 import 语句。我们也可以根据需要创建自定义脚本。

JShell 每次重置时都会再次重新加载启动脚本。重置则一般发生在 JShell 启动时或者执行了 /reset/reload/env 命令。

如果我们在启动 JShell 时未使用任何其它脚本,那么会默认使用启动脚本 DEFAULT 。此默认脚本包含了常用的导入声明。

注意

根据 Java 语言定义,会自动导入 java.lang 包,因此该不需要显式导入。

在 JShell 启动后,我们可以使用 /set start 命令设置启动脚本。

jshell> /set start PRINTING

jshell> /reset
|  正在重置状态。

jshell> 

如果设置的脚本不存在,那么就会报错

jshell> /set start mystartup.jsh
|  找不到 '/set start' 的文件 'mystartup.jsh'。

与所有的 /set 命令一样,这个 /set start 命令只在当前会话中有效,退出重进就还原了。为了在下次启动时仍然加载这个启动脚本,我们可以添加 -retain 命令来保存。

通常,在测试启动脚本设置时不使用 -retain 选项,知道调试完毕后,才会使用 -retain 选项保存。

jshell> /set start -retain

这样,下次启动时,就会加载我们刚刚设置的启动脚本。

请注意,在 JShell 运行期间,仅在重置状态时才将启动脚本加载到当前会话中。上面的 -retain 命令只会存储脚本的内容,并不会发生对脚本的引用。这个脚本仅在运行 /set start 命令时才读取。但是,预定义的脚本是通过引用加载的,可以使用 JDK 的新版本进行更新。

启动脚本也可以在 JShell 启动时使用 --startup 选项进行设置,如下面的示例中所示

[yufei@www.twle.cn ~]$ jshell --startup mystartup.jsh

测试启动脚本时,使用 print 等命令输出内容的时候最好不要添加 System.out 前缀。而是使用预定义的PRINTING 脚本访问 printprintlnprintf 等方法。

对了,启动脚本可以设置多个。也就是我们可以使用 /set start 是设置多个启动脚本,例如下面的范例设置 JShell 启动时同时加载默认导入和打印定义:

[yufei@www.twle.cn ~]$ jshell
|  欢迎使用 JShell -- 版本 10.0.2
|  要大致了解该版本, 请键入: /help intro

jshell> /set start -retain DEFAULT PRINTING

jshell> /exit
|  再见
[yufei@www.twle.cn ~]$ jshell
|  欢迎使用 JShell -- 版本 10.0.2
|  要大致了解该版本, 请键入: /help intro

jshell> println("Hello World!")
Hello World!

jshell> 

-retain 标志用于将这些预定义脚本设置为 JShell 工具的未来会话的启动脚本。设置完毕后,我们可以使用 / set start 不带参数来查看这些启动脚本定义的内容的详细信息。

在启动 JShell 时也可以设置多个启动脚本,而添加方法就是使用多个 --startup 标志

[yufei@www.twle.cn ~]$ jshell --startup DEFAULT --startup PRINTING
|  欢迎使用 JShell -- 版本 10.0.2
|  要大致了解该版本, 请键入: /help intro

jshell> 
目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.