【Java可执行命令】(十四)脚本执行工具jrunscript :在命令行环境下交互式执行一些简单的脚本或测试代码片段~
Java可执行命令之jrunscript
- 1️⃣ 概念
- 2️⃣ 优势和缺点
- 3️⃣ 使用
- 3.1 语法格式
- 3.2 启动 jrunscript 直接执行脚本
- 3.3 可选参数:-l < language>
- 3.4 可选参数:-e < script>
- 3.5 可选参数:-f < script file>
- 3.6 注意事项
- 4️⃣ 应用场景
- 🌾 总结

1️⃣ 概念
Java平台拥有强大的编程语言和生态系统,为了方便开发人员在命令行环境下快速执行一些简单的脚本或测试代码片段,Java引入了 jrunscript 命令。jrunscript 旨在提供一个交互式的脚本环境,使开发人员能够使用多种脚本语言来处理和操作Java对象。
jrunscript 是Java Development Kit (JDK) 中的一个命令行工具,允许在命令行环境中执行各种脚本。它支持多种脚本语言(如JavaScript、Python、Ruby等),并且可以与Java类和库进行交互与通信。
jrunscript 基于Java的脚本引擎接口(JSR 223)实现。它使用不同的脚本引擎来解析和执行不同的脚本语言,并使用Java与脚本语言之间的桥接功能进行交互。
2️⃣ 优势和缺点
优点:
- 简单易用的命令行界面,无需建立独立的项目或编写复杂的Java代码;
- 支持多种脚本语言,灵活满足不同的开发需求;
- 可以直接与Java类和库进行交互,利用Java的丰富功能和库。
缺点:
- 功能相对较弱,不适合处理复杂的应用程序逻辑;
- 缺乏完整的集成开发环境 (
IDE) 的功能和调试器等工具。
3️⃣ 使用
3.1 语法格式
jrunscript 命令的使用语法如下:
jrunscript [options] [arguments...]
其中,[options] 表示可选参数,[arguments...]表示自定义参数。
将 jrunscript 支持的各种可选参数汇总如下:
| 参数 | 说明 |
|---|---|
-classpath <path>或-cp <path> | 指定查找用户类文件的位置 |
-D <name>=<value> | 设置系统属性 |
-J <flag> | 将<flag>直接传递到运行时系统 |
-l <language> | 使用指定的脚本语言 |
-e <script> | 执行给定内联脚本 |
-encoding <encoding> | 指定脚本文件使用的字符编码 |
-f <script file> | 执行给定的外部脚本文件 |
-f - | 交互模式,从标准输入中读取脚本。如果使用此选项,则这应该是最后一个-f选项 |
-help或-? | 打印此命令使用信息并退出 |
-q | 列出所有可用的脚本引擎并退出 |
从上边信息可以看到, jrunscript 命令对于脚本解释执行的各种操作支持,大家可以根据自己的需求参照表格选择所需操作命令。
知道了命令的可选参数后,下面介绍命令使用需要注意的地方:
- 当使用了自定义参数
[arguments...],并且没有使用-e或-f可选参数选项,则首先自变量是脚本文件,其余的自变量(如果有的话)将被传递作为脚本参数 - 当使用了
[arguments..]和-e或-f选项,则所有自定义参数作为脚本参数传递; - 当自定义参数、
-e、-f都缺少(未使用)时,则使用交互模式。
而下面主要介绍jrunscript 工具的一些常用使用方式:
- 启动
jrunscript: 通过在命令行中直接运行jrunscript来启动工具; - 选择脚本语言: 使用
-l <language>选项来指定要使用的脚本语言。例如:jrunscript -l javascript; - 执行脚本文件: 使用
-f <file>选项指定要执行的脚本文件。例如:jrunscript -f script.js; - 直接执行脚本: 在命令行中直接输入脚本语句,并按回车键执行。例如:
println("Hello, World!"); - 加载Java类和库:使用
-classpath选项指定类路径,以便在脚本中使用Java类和库。
3.2 启动 jrunscript 直接执行脚本
启动 jrunscript 并直接执行脚本是使用 jrunscript命令的一种常见用法。这种方法允许在命令行中输入脚本代码,并立即执行它,而无需编写或加载外部脚本文件。下面是启动 jrunscript直接执行脚本的过程:
(1)打开终端或命令行窗口,输入jrunscript以启动工具;
(2)在命令行提示符下,输入脚本语句,然后按 Enter 键执行。例如,如果使用JavaScript作为脚本语言,可以输入以下内容:
> println("我是小山");
这将输出 “我是小山” 到控制台。
如果使用其他脚本语言(如Python或 Ruby),则需要根据该语言的语法编写相应的脚本代码。
(3)可以继续在命令行中输入和执行其他脚本语句,或者按Ctrl+C退出。
在命令行中直接运行 jrunscript 启动工具,然后在命令行中直接输入脚本语句,并按回车键执行的流程如图所示:

通过启动 jrunscript 直接执行脚本,可以快速测试和验证脚本代码,执行简单的计算、数据处理或其他任务。这种方法对于需要快速测试和调试脚本的开发人员来说非常方便,同时也适用于在交互式环境中快速执行一些临时脚本代码的场景。
3.3 可选参数:-l < language>
jrunscript -l <language> 用于指定要使用的脚本语言。通过此选项,可以选择在 jrunscript 环境中使用的脚本语言解释器。通过 -l 选项后面跟随脚本语言的名称来选择特定的脚本语言解释器。例如:
jrunscript -l javascript
这将使用 JavaScript 作为脚本语言加载 jrunscript,并提供交互式环境。 目前,jrunscript 支持多种内置的脚本语言解释器,如 JavaScript、Python、Ruby 等。
下面演示命令的使用,首先创建一个输出六六乘法表信息的 js 脚本:

建好脚本文件之后,我们通过命令行输入命令执行来测试脚本执行:
jrunscript -l javascript multiplicationTable.js
运行结果如图所示:

以上代码根据提供的行数和列数生成六六乘法表。可以通过更改 rows 和 cols 变量的值来生成不同大小的乘法表。
使用不同的 -l 参数,可以根据需要选择支持的特定脚本语言并执行相应的脚本代码。启动 jrunscript 时,指定 -l 参数后,将进入与所选脚本语言对应的交互式脚本环境,可以输入和执行该脚本语言的代码。因此,该选项允许开发人员在同一个 jrunscript 命令中使用多种脚本语言来执行不同类型的任务或测试脚本代码。
3.4 可选参数:-e < script>
jrunscript -e:这是使用 jrunscript 命令执行一行内联脚本的选项。可以在命令行中直接输入脚本语句,并通过 -e 选项告诉 jrunscript 执行该脚本语句。例如:
jrunscript -e "print('Hello, 小山!')"
此命令将会执行一个简单的内联脚本,输出 “Hello, 小山!”。
执行结果如图所示:

3.5 可选参数:-f < script file>
jrunscript -e 和 jrunscript -f 是 jrunscript 命令的两种不同用法,它们在执行脚本时有所区别。
jrunscript -f:使用命令执行外部脚本文件的选项。需要通过 -f 选项指定要执行的脚本文件的路径。例如:
jrunscript -f script.js
此命令将会加载并执行名为 “script.js” 的外部脚本文件。
因此,jrunscript -e 适用于一次性执行简单的内联脚本语句,而 jrunscript -f 则适用于加载和执行外部存储的脚本文件。使用不同的选项,可以根据具体需求选择合适的方式来执行脚本代码。
3.6 注意事项
- 脚本语言解释器需要事先安装在系统上;
jrunscript功能相对于大型项目或复杂业务逻辑较弱,不建议作为生产环境中的首选工具;- 确保只执行可信赖的脚本,以防止潜在的安全问题。
4️⃣ 应用场景
- 快速验证简单算法或测试代码片段;
- 执行一些简单的任务,如文件处理、数据转换等;
- 演示和教学目的,以便在命令行环境中展示某种功能或语言特性。
🌾 总结
jrunscript 是一个方便的命令行工具,使开发人员能够在交互式环境中快速执行脚本和测试代码。它支持多种脚本语言,并且可以与Java进行无缝交互。尽管功能相对简单,但在某些情况下,jrunscript 可以作为快速原型、数据处理或简单任务执行的有用工具。
相关文章:
【Java可执行命令】(十四)脚本执行工具jrunscript :在命令行环境下交互式执行一些简单的脚本或测试代码片段~
Java可执行命令之jrunscript 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式3.2 启动 jrunscript 直接执行脚本3.3 可选参数:-l < language>3.4 可选参数:-e < script>3.5 可选参数:-f < script file>3.6 注意事项 4️…...
eclipse Java Editor Templates
Window - Preferences - Java - Editor - Templates date ${currentDate:date(yyyy.MM.dd)}...
vue SKU已知sku.tree算出sku.list类目值和id
已知sku.tree算出sku.list类目值和id <van-skuref"sku"v-model"showBase":close-on-click-overlay"closeOnClickOverlay":goods"skuData.goods_info":goods-id"skuData.goods_id":hide-stock"skuData.sku.hide_stoc…...
error C4430 缺少类型说明符 - 假定为 int。注意 C++ 不支持默认 int
出现原因:两个类头文件相互包含 使用声明类代替头文件包含...
Embedding入门介绍以及为什么Embedding在大语言模型中很重要
Embeddings技术简介及其历史概要 在机器学习和自然语言处理中,embedding是指将高维度的数据(例如文字、图片、音频)映射到低维度空间的过程。embedding向量通常是一个由实数构成的向量,它将输入的数据表示成一个连续的数值空间中…...
暑假刷题第20天--8/3
B-序列的与和_2023河南萌新联赛第(四)场:河南大学 (nowcoder.com)(dfs) #include<iostream> #include<string> using namespace std; #define ull unsigned long long int n,k; ull a[21]; ull ans0; int…...
docker容器内的django启动celery任务队列
问题1: celery任务队列一般要使用redis,但是容器内的django要访问本机的redis是十分麻烦的 解决2: 在容器内安装redis,或者单独启动一个redis的容器,我是单独启动一个redis容器 安装redis镜像docker pull redis启动…...
linux文件描述符fd
文件描述符 fd是一个>0 的整数 每打开一个文件,就创建一个文件描述符,通过文件描述符来操作文件 预定义的文件描述符: 0:标准输入,对应于已打开的标准输入设备(键盘) 1:标准输出,对应于已打开的标准输出设备(控制台) 2.标准错误…...
【深度学习】各个开源库总结及实战-总目录
前言 此专栏主要是用MMCV和PaddlePaddle,它们都是优秀的开源库,用于计算机视觉和深度学习任务。MMCV提供了丰富的计算机视觉工具和算法,基于PyTorch框架,适合对PyTorch熟悉的用户。PaddlePaddle是百度开发的深度学习平台,提供易用且高性能的深度学习框架。 此专栏主要包括…...
Unity Shader:闪烁
还是一样的分为UI闪烁和物体闪烁,其中具体可分为:UI闪烁、物体闪烁与半透明闪烁 1,UI闪烁 对于UI 还是一样的,改写UI本身的shader: Shader "UI/YydUIShanShder" {Properties{[PerRendererData] _MainTex(…...
c++开发模式桥接模式
将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 #include <iostream> using namespace std;// Abstractionclass Abstraction { public:virtual void Op…...
javaScript 树形结构 递归查询方法。
1. 函数递归定义 程序调用自身的编程技巧称为递归( recursion)。 2.使用条件 1.存在限制条件,当满足这个限制条件的时候,递归便不再继续。 2.每次递归调用之后越来越接近这个限制条件。 3.既然是自己调用自己,那么整个…...
MySQL语法2
DQL语句介绍 DQL是数据查询语言,用来查询数据库中表的记录 DQL-基本查询语句 SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVIMG 分组后条件列表 ORDER BY 排列字段列表 LIMIT 分页参数 讲解过程:基本查询、条件查询…...
Mysql on duplicate key update用法及优缺点
在实际应用中,经常碰到导入数据的功能,当导入的数据不存在时则进行添加,有修改时则进行更新, 在刚碰到的时候,一般思路是将其实现分为两块,分别是判断增加,判断更新,后来发现在mysql…...
【Linux】-进程概念之进程优先级(如何去进行调度以及进程切换),还不进来看看??
💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …...
《在细雨中呼喊》阅读笔记
《在细雨中呼喊》阅读笔记 2023年2月5号在家读完,本书就是以作者者回忆的形式来写,男一号叫孙光林,有一个哥哥孙光平,一个弟弟叫孙光明,父亲叫孙光才。书中写了四篇故事。 第一篇写的就是作者对于老家生活的回忆 小的时…...
01-1 搭建 pytorch 虚拟环境
pytorch 管网:PyTorch 一 进入 Anaconda 二 创建虚拟环境 conda create -n pytorch python3.9注意要注意断 VPN切换镜像: 移除原来的镜像 # 查看当前配置 conda config --show channels conda config --show-sources# 移除之前的镜像 conda config --…...
RocketMQ 事务消息
事务消息是 RocketMQ 的高级特性之一 。这篇文章,笔者会从应用场景、功能原理、实战例子三个模块慢慢为你揭开事务消息的神秘面纱。 1 应用场景 举一个电商场景的例子:用户购物车结算时,系统会创建支付订单。 用户支付成功后支付订单的状态…...
Windows安装ElasticSearch
安装环境:java环境。新版本需要安装高版本的java,所有本次安装的为 7.x版本的ElasticSearch 。所以要java11 1、安装java11 2、下载 Elasticsearch 安装包 官网地址:(https://www.elastic.co/cn/) 安装包下载地址:https://www…...
【深度学习】SMILEtrack: SiMIlarity LEarning for Multiple Object Tracking,论文
论文:https://arxiv.org/abs/2211.08824 代码:https://github.com/WWangYuHsiang/SMILEtrack 文章目录 AbstractIntroductionRelated WorkTracking-by-DetectionDetection methodData association method Tracking-by-Attention Methodology架构概述外观…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
