【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对象。

jrunscriptJava Development Kit (JDK) 中的一个命令行工具,允许在命令行环境中执行各种脚本。它支持多种脚本语言(如JavaScriptPythonRuby等),并且可以与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("我是小山");

这将输出 “我是小山” 到控制台。

如果使用其他脚本语言(如PythonRuby),则需要根据该语言的语法编写相应的脚本代码。
(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

运行结果如图所示:

在这里插入图片描述
以上代码根据提供的行数和列数生成六六乘法表。可以通过更改 rowscols 变量的值来生成不同大小的乘法表。

使用不同的 -l 参数,可以根据需要选择支持的特定脚本语言并执行相应的脚本代码。启动 jrunscript 时,指定 -l 参数后,将进入与所选脚本语言对应的交互式脚本环境,可以输入和执行该脚本语言的代码。因此,该选项允许开发人员在同一个 jrunscript 命令中使用多种脚本语言来执行不同类型的任务或测试脚本代码。

3.4 可选参数:-e < script>

jrunscript -e:这是使用 jrunscript 命令执行一行内联脚本的选项。可以在命令行中直接输入脚本语句,并通过 -e 选项告诉 jrunscript 执行该脚本语句。例如:

jrunscript -e "print('Hello, 小山!')"

此命令将会执行一个简单的内联脚本,输出 “Hello, 小山!”。

执行结果如图所示:

在这里插入图片描述

3.5 可选参数:-f < script file>

jrunscript -ejrunscript -f 是 jrunscript 命令的两种不同用法,它们在执行脚本时有所区别。

jrunscript -f:使用命令执行外部脚本文件的选项。需要通过 -f 选项指定要执行的脚本文件的路径。例如:

jrunscript -f script.js

此命令将会加载并执行名为 “script.js” 的外部脚本文件。

因此,jrunscript -e 适用于一次性执行简单的内联脚本语句,而 jrunscript -f 则适用于加载和执行外部存储的脚本文件。使用不同的选项,可以根据具体需求选择合适的方式来执行脚本代码。

3.6 注意事项

  • 脚本语言解释器需要事先安装在系统上;
  • jrunscript功能相对于大型项目或复杂业务逻辑较弱,不建议作为生产环境中的首选工具;
  • 确保只执行可信赖的脚本,以防止潜在的安全问题。

4️⃣ 应用场景

  • 快速验证简单算法或测试代码片段;
  • 执行一些简单的任务,如文件处理、数据转换等;
  • 演示和教学目的,以便在命令行环境中展示某种功能或语言特性。

🌾 总结

jrunscript 是一个方便的命令行工具,使开发人员能够在交互式环境中快速执行脚本和测试代码。它支持多种脚本语言,并且可以与Java进行无缝交互。尽管功能相对简单,但在某些情况下,jrunscript 可以作为快速原型、数据处理或简单任务执行的有用工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/20666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型开发(十五):从0到1构建一个高度自动化的AI项目开发流程(上)

全文共5600余字&#xff0c;预计阅读时间约13~20分钟 | 满满干货(附全部代码)&#xff0c;建议收藏&#xff01; 本文目标&#xff1a;提出一种利用大语言模型(LLMs)加快项目的开发效率的解决思路&#xff0c;本文作为第一部分&#xff0c;主要集中在如何完整的执行引导Chat模…

VSCode新手快速下载、安装、使用

目录 下载 安装 1、许可协议 2、安装位置 3、开始菜单文件夹 4、附加任务 5、确认安装 6、完成 使用 1、汉化&#xff08;设置中文界面&#xff09; 2、设置 下载 进入VSCode官方页面&#xff0c;选择自己系统对应的下载链接VSCode默认提供的User Installer版本。但…

如何使用大模型处理生活繁琐的工作

如果每封电子邮件、每个带有订单、发票、投诉、录用请求或工作申请的 PDF 都可以翻译成机器可读的数据&#xff0c;会怎样&#xff1f;然后可以由 ERP / CRM / LMS / TMS 自动处理吗&#xff1f;无需编程特殊接口。 听起来很神奇&#xff1f;它确实有一些魔力。但最近已成为可…

SpringBoot引入MyBatisGenerator

1.引入插件 <plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.5</version><configuration><!--generator配置文件所在位置--><configuratio…

Python web实战之 Django 的 ORM 框架详解

本文关键词&#xff1a;Python、Django、ORM。 概要 在 Python Web 开发中&#xff0c;ORM&#xff08;Object-Relational Mapping&#xff0c;对象关系映射&#xff09;是一个非常重要的概念。ORM 框架可以让我们不用编写 SQL 语句&#xff0c;就能够使用对象的方式来操作数据…

STM32CUBUMX配置RS485 modbus STM32(从机)亲测可用

———————————————————————————————————— ⏩ 大家好哇&#xff01;我是小光&#xff0c;嵌入式爱好者&#xff0c;一个想要成为系统架构师的大三学生。 ⏩最近在开发一个STM32H723ZGT6的板子&#xff0c;使用STM32CUBEMX做了很多驱动&#x…

怎么才能远程控制笔记本电脑?

为什么选择AnyViewer远程控制软件&#xff1f; 为什么AnyViewer是远程控制笔记本电脑软件的首选&#xff1f;以下是选择AnyViewer成为笔记本电脑远程控制软件的主要因素。 跨平台能力 AnyViewer作为一款跨平台远程控制软件&#xff0c;不仅可以用于从一台Windows电…

【BEV感知】3-BEV开源数据集

3-BEV开源数据集 1 KITTI1.1 KITTI数据怎么采集?1.2 KITTI数据规模有多大?1.3 KITTI标注了哪些目标?1.4 转换矩阵1.5 标签文件 2 nuScenes2.1 nuScenes Vs KITTI2.2 标注文件 1 KITTI KITTI 1.1 KITTI数据怎么采集? 通过车载相机、激光雷达等传感器采集。 只提供了相机正…

蓝桥杯上岸每日N题 第七期(小猫爬山)!!!

蓝桥杯上岸每日N题 第七期(小猫爬山)&#xff01;&#xff01;&#xff01; 同步收录 &#x1f447; 蓝桥杯上岸必背&#xff01;&#xff01;&#xff01;(第四期DFS) 大家好 我是寸铁&#x1f4aa; 冲刺蓝桥杯省一模板大全来啦 &#x1f525; 蓝桥杯4月8号就要开始了 &a…

C/C++的5大内存分区

1、堆区&#xff08;heap&#xff09;——由程序员分配和释放&#xff0c; 若程序员不释放&#xff0c;程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事 2、栈区&#xff08;stack&#xff09;——由编译器自动分配释放 &#xff0c;存放函数的参数值&#xff0c;局…

DevExpress WPF Tree List组件,让数据可视化程度更高!(二)

DevExpress WPF Tree List组件是一个功能齐全、数据感知的TreeView-ListView混合体&#xff0c;可以把数据信息显示为REE、GRID或两者的组合&#xff0c;在数据绑定或非绑定模式下&#xff0c;具有完整的数据编辑支持。 在上文中&#xff08;点击这里回顾DevExpress WPF Tree …

shell脚本练习

#include <myhead.h> //递归实现输入一个数,输出这个数的每一位 void fun1(int data) {if(data 0) return;fun1(data/10);printf("%d\t",data%10);}//递归实现输入一个数,输出这个数的二进制 void fun2(int data) {if(data 0) return;fun2(data/2);printf(&q…

华为流程体系:流程架构「OES方法」

目录 内容简介 OES方法 端到端的流程 专栏列表 CSDN学院 作者简介 内容简介 今天继续来谈谈华为流程体系中的流程架构。 在前期的内容已经介绍过 POS 流程架构的方法。 这里就先回顾一下 POS 方法的相关内容&#xff1a; 关于 POS&#xff0c;大家可以参看上面的这张图…

现代C++中的从头开始深度学习:激活函数

一、说明 让我们通过在C中实现激活函数来获得乐趣。人工神经网络是生物启发模型的一个例子。在人工神经网络中&#xff0c;称为神经元的处理单元被分组在计算层中&#xff0c;通常用于执行模式识别任务。 在这个模型中&#xff0c;我们通常更喜欢控制每一层的输出以服从一些约束…

Java框架(九)--Spring Boot入门(1)

SpringBoot 2.x入门简介 学前基础 Maven Spring MVC理念 开发环境 Spring Boot官网版本介绍 https://spring.io/projects/spring-boot#learn 我们点击 Reference Doc. &#xff0c;再点击Getting Started&#xff0c;就可以看到官网系统环境说明了 官网系统环境说明 Sp…

LangChain+ChatGLM大模型应用落地实践(一)

LLMs的落地框架&#xff08;LangChain&#xff09;&#xff0c;给LLMs套上一层盔甲&#xff0c;快速构建自己的新一代人工智能产品。 一、简介二、LangChain源码三、租用云服务器实例四、部署实例 一、简介 LangChain是一个近期非常活跃的开源代码库&#xff0c;目前也还在快速…

使用vscode进行远程开发服务器配置

1.下载vscode 2.给vscode 安装python 和 remote ssh插件 remote—SSH扩展允许您使用任何具有SSH服务器的远程机器作为您的开发环境。 3.安装remote-SSH插件之后&#xff0c;vscode左侧出现电脑图标&#xff0c;即为远程服务&#xff0c;按图依次点击&#xff0c;进行服务器配置…

运维:18工作中常用 Shell 脚本, 强烈推荐

1、检测两台服务器指定目录下的文件一致性 #!/bin/bash ###################################### 检测两台服务器指定目录下的文件一致性 ##################################### #通过对比两台服务器上文件的md5值,达到检测一致性的目的 dir=/data/web b_ip=192…

访问者模式——操作复杂对象结构

1、简介 1.1、概述 访问者模式是一种较为复杂的行为型设计模式&#xff0c;它包含访问者和被访问元素两个主要组成部分。这些被访问的元素通常具有不同的类型&#xff0c;且不同的访问者可以对它们进行不同的访问操作。访问者模式使得用户可以在不修改现有系统的情况下扩展系…

TensorRT学习笔记--基于TensorRT部署YoloV3, YoloV5和YoloV8

目录 1--完整项目 2--模型转换 3--编译项目 4--序列化模型 5--推理测试 1--完整项目 以下以 YoloV8 为例进行图片和视频的推理&#xff0c;完整项目地址如下&#xff1a;https://github.com/liujf69/TensorRT-Demo git clone https://github.com/liujf69/TensorRT-Demo.…