当前位置: 首页 > news >正文

【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 可以作为快速原型、数据处理或简单任务执行的有用工具。

相关文章:

【Java可执行命令】(十四)脚本执行工具jrunscript :在命令行环境下交互式执行一些简单的脚本或测试代码片段~

Java可执行命令之jrunscript 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式3.2 启动 jrunscript 直接执行脚本3.3 可选参数&#xff1a;-l < language>3.4 可选参数&#xff1a;-e < script>3.5 可选参数&#xff1a;-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

出现原因&#xff1a;两个类头文件相互包含 使用声明类代替头文件包含...

Embedding入门介绍以及为什么Embedding在大语言模型中很重要

Embeddings技术简介及其历史概要 在机器学习和自然语言处理中&#xff0c;embedding是指将高维度的数据&#xff08;例如文字、图片、音频&#xff09;映射到低维度空间的过程。embedding向量通常是一个由实数构成的向量&#xff0c;它将输入的数据表示成一个连续的数值空间中…...

暑假刷题第20天--8/3

B-序列的与和_2023河南萌新联赛第&#xff08;四&#xff09;场&#xff1a;河南大学 (nowcoder.com)&#xff08;dfs&#xff09; #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&#xff1a; celery任务队列一般要使用redis&#xff0c;但是容器内的django要访问本机的redis是十分麻烦的 解决2&#xff1a; 在容器内安装redis&#xff0c;或者单独启动一个redis的容器&#xff0c;我是单独启动一个redis容器 安装redis镜像docker pull redis启动…...

linux文件描述符fd

文件描述符 fd是一个>0 的整数 每打开一个文件&#xff0c;就创建一个文件描述符&#xff0c;通过文件描述符来操作文件 预定义的文件描述符: 0:标准输入&#xff0c;对应于已打开的标准输入设备(键盘) 1:标准输出&#xff0c;对应于已打开的标准输出设备(控制台) 2.标准错误…...

【深度学习】各个开源库总结及实战-总目录

前言 此专栏主要是用MMCV和PaddlePaddle,它们都是优秀的开源库,用于计算机视觉和深度学习任务。MMCV提供了丰富的计算机视觉工具和算法,基于PyTorch框架,适合对PyTorch熟悉的用户。PaddlePaddle是百度开发的深度学习平台,提供易用且高性能的深度学习框架。 此专栏主要包括…...

Unity Shader:闪烁

还是一样的分为UI闪烁和物体闪烁&#xff0c;其中具体可分为&#xff1a;UI闪烁、物体闪烁与半透明闪烁 1&#xff0c;UI闪烁 对于UI 还是一样的&#xff0c;改写UI本身的shader&#xff1a; Shader "UI/YydUIShanShder" {Properties{[PerRendererData] _MainTex(…...

c++开发模式桥接模式

将抽象部分与它的实现部分分离&#xff0c;使它们都可以独立地变化。它是一种对象结构型模式&#xff0c;又称为柄体(Handle and Body)模式或接口(Interface)模式。 #include <iostream> using namespace std;// Abstractionclass Abstraction { public:virtual void Op…...

javaScript 树形结构 递归查询方法。

1. 函数递归定义 程序调用自身的编程技巧称为递归&#xff08; recursion&#xff09;。 2.使用条件 1.存在限制条件&#xff0c;当满足这个限制条件的时候&#xff0c;递归便不再继续。 2.每次递归调用之后越来越接近这个限制条件。 3.既然是自己调用自己&#xff0c;那么整个…...

MySQL语法2

DQL语句介绍 DQL是数据查询语言&#xff0c;用来查询数据库中表的记录 DQL-基本查询语句 SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVIMG 分组后条件列表 ORDER BY 排列字段列表 LIMIT 分页参数 讲解过程&#xff1a;基本查询、条件查询…...

Mysql on duplicate key update用法及优缺点

在实际应用中&#xff0c;经常碰到导入数据的功能&#xff0c;当导入的数据不存在时则进行添加&#xff0c;有修改时则进行更新&#xff0c; 在刚碰到的时候&#xff0c;一般思路是将其实现分为两块&#xff0c;分别是判断增加&#xff0c;判断更新&#xff0c;后来发现在mysql…...

【Linux】-进程概念之进程优先级(如何去进行调度以及进程切换),还不进来看看??

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …...

《在细雨中呼喊》阅读笔记

《在细雨中呼喊》阅读笔记 2023年2月5号在家读完&#xff0c;本书就是以作者者回忆的形式来写&#xff0c;男一号叫孙光林&#xff0c;有一个哥哥孙光平&#xff0c;一个弟弟叫孙光明&#xff0c;父亲叫孙光才。书中写了四篇故事。 第一篇写的就是作者对于老家生活的回忆 小的时…...

01-1 搭建 pytorch 虚拟环境

pytorch 管网&#xff1a;PyTorch 一 进入 Anaconda 二 创建虚拟环境 conda create -n pytorch python3.9注意要注意断 VPN切换镜像&#xff1a; 移除原来的镜像 # 查看当前配置 conda config --show channels conda config --show-sources# 移除之前的镜像 conda config --…...

RocketMQ 事务消息

事务消息是 RocketMQ 的高级特性之一 。这篇文章&#xff0c;笔者会从应用场景、功能原理、实战例子三个模块慢慢为你揭开事务消息的神秘面纱。 1 应用场景 举一个电商场景的例子&#xff1a;用户购物车结算时&#xff0c;系统会创建支付订单。 用户支付成功后支付订单的状态…...

Windows安装ElasticSearch

安装环境&#xff1a;java环境。新版本需要安装高版本的java&#xff0c;所有本次安装的为 7.x版本的ElasticSearch 。所以要java11 1、安装java11 2、下载 Elasticsearch 安装包 官网地址&#xff1a;(https://www.elastic.co/cn/) 安装包下载地址&#xff1a;https://www…...

【深度学习】SMILEtrack: SiMIlarity LEarning for Multiple Object Tracking,论文

论文&#xff1a;https://arxiv.org/abs/2211.08824 代码&#xff1a;https://github.com/WWangYuHsiang/SMILEtrack 文章目录 AbstractIntroductionRelated WorkTracking-by-DetectionDetection methodData association method Tracking-by-Attention Methodology架构概述外观…...

手把手教你从零搭建Ubuntu20.04下的ROS2开发环境

1. 为什么选择Ubuntu 20.04和ROS2 机器人开发领域近年来发展迅猛&#xff0c;而ROS2作为第二代机器人操作系统&#xff0c;已经成为行业新标准。相比第一代ROS&#xff0c;ROS2在实时性、跨平台支持和分布式架构等方面都有显著提升。我最初接触ROS2时也经历过不少挫折&#xff…...

ChanlunX缠论插件:5分钟快速掌握专业级股市技术分析

ChanlunX缠论插件&#xff1a;5分钟快速掌握专业级股市技术分析 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 想要在复杂多变的股市中精准把握买卖时机吗&#xff1f;ChanlunX缠论插件将深奥的缠中说禅…...

Mac外接显示器必看:从排列到亮度调节的完整避坑指南

Mac外接显示器完全指南&#xff1a;从基础设置到高阶调校 开篇&#xff1a;为什么你的Mac需要外接显示器&#xff1f; 作为一名长期使用MacBook Pro的深度用户&#xff0c;我清楚地记得第一次连接外接显示器时的困惑与惊喜。那块13英寸的Retina屏幕虽然精致&#xff0c;但在处理…...

SpringCloud OAuth2与JWT:构建无状态微服务安全体系的实践指南

1. 为什么微服务需要无状态安全方案 记得去年我参与重构一个电商系统时&#xff0c;遇到一个典型问题&#xff1a;每次大促期间&#xff0c;Redis集群就会因为Session查询压力过大而崩溃。这个痛点让我深刻理解了传统Session方案在微服务架构中的局限性。 传统Session方案就像…...

基于STC89C52与ADC0832的智能浇花系统设计与实现(附完整工程)

1. 智能浇花系统设计背景与核心思路 养花爱好者最头疼的问题莫过于出差或旅行时植物无人照料。传统定时浇水方案无法感知土壤实际湿度&#xff0c;容易导致浇水不足或过度。我在三年前第一次尝试用STC89C52制作自动浇花装置时&#xff0c;就遇到过水泵频繁误启动把多肉植物淹死…...

FastbootEnhance 专业指南:掌握Windows平台Android设备底层管理核心技术

FastbootEnhance 专业指南&#xff1a;掌握Windows平台Android设备底层管理核心技术 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance FastbootEnha…...

如何快速上手Office自定义界面编辑器:打造你的专属办公环境

如何快速上手Office自定义界面编辑器&#xff1a;打造你的专属办公环境 【免费下载链接】office-custom-ui-editor Standalone tool to edit custom UI part of Office open document file format 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editor …...

Hunyuan-MT Pro多语言落地:支持阿拉伯语从右向左排版+Unicode特殊字符处理

Hunyuan-MT Pro多语言落地&#xff1a;支持阿拉伯语从右向左排版Unicode特殊字符处理 1. 项目概述 Hunyuan-MT Pro是一个基于腾讯混元&#xff08;Hunyuan-MT-7B&#xff09;开源模型构建的现代化翻译Web终端。它结合了Streamlit的便捷交互与混元模型强大的多语言理解能力&am…...

git-sync性能调优:深度、GC与稀疏检出实战技巧

git-sync性能调优&#xff1a;深度、GC与稀疏检出实战技巧 【免费下载链接】git-sync A sidecar app which clones a git repo and keeps it in sync with the upstream. 项目地址: https://gitcode.com/gh_mirrors/gi/git-sync git-sync是一款轻量级的边车应用&#xf…...

iStore:OpenWRT软件中心终极安装与使用完整指南

iStore&#xff1a;OpenWRT软件中心终极安装与使用完整指南 【免费下载链接】istore 一个 Openwrt 标准的软件中心&#xff0c;纯脚本实现&#xff0c;只依赖Openwrt标准组件。支持其它固件开发者集成到自己的固件里面。更方便入门用户搜索安装插件。The iStore is a app store…...