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

news2024/9/27 17:31:59

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.coloradmin.cn/o/832495.html

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

相关文章

powershell脚本写一个托盘图标

1、准备ico格式图标 star_bethlehem_icon 文件名改为star.ico 2、安装VSCode 如何下载安装VSCode 扩展&#xff1a;PowerShell扩展 3、创建项目 1、运行PowerShell命令 mkdir trayicon_ps1;cd trayicon_ps1;New-Item trayicon.ps1;code .2、将star.ico放入trayicon_ps1文…

stable diffusion(1): webui的本地部署(windows)

一、前言 是的&#xff0c;现在是202308月份了&#xff0c;网上已经有很多打包好的工具&#xff0c;或者直接进一个web就能用SD的功能&#xff0c;但是我们作为程序员&#xff0c;就应该去躺坑&#xff0c;这样做也是为了能够有更多自主操作的空间。 像其他AI一样&#xff0c…

【MySQL】锁(十三)

🚗MySQL学习第十三站~ 🚩本文已收录至专栏:MySQL通关路 ❤️文末附全文思维导图,感谢各位点赞收藏支持~ 一.引入 锁是计算机协调多个进程或线程并发访问某一共享资源的机制。在数据库中,除传统的计算资源(CPU、 RAM、I/O)的争用以外,数据也是一种供许多用户共享的资…

监控数据的采集方式及原理

1、读取 /proc 目录 /proc 是一个位于内存中的伪文件系统&#xff0c;该目录下保存的不是真正的文件和目录&#xff0c;而是一些“运行时”信息&#xff0c;Linux 操作系统层面的很多监控数据&#xff0c;比如内存数据、网卡流量、机器负载等&#xff0c;都是从 /proc 中获取的…

Mac系统如何修改默认的Java版本

1. 确定Java版本 # 查看当前系统都有哪些Java版本 /usr/libexec/java_home -V | grep jdk# 运行以下命令来查看当前默认的 Java 版本 java -version# 运行以下命令来查找当前默认的 Java 安装路径 /usr/libexec/java_home/usr/libexec/java_home -V | grep jdk java -versio…

【Cadence】stb仿真和ac仿真——以一个简单的全差分反相放大器仿真为例

最近在补一些仿真方法学的问题&#xff0c;以及一些一直以来都有点模糊的概念&#xff0c;简单记录一下。 具体问题包括&#xff1a; ac仿真和stb仿真的原理、区别&#xff0c;仿真得到的幅频响应是否一致&#xff0c;开关电容放大器只能使用stb仿真吗&#xff1b;放大器稳定性…

AR远程专家指导在汽车改装上的应用有哪些?

随着科技的不断发展&#xff0c;AR增强现实技术逐渐走进了我们的生活。加上商贸国际化&#xff0c;远程协同纵深到制造生产的更多环节&#xff0c;研发协同、工艺优化等场景复杂、跨层级、需要频繁沟通确认的流程正通过AR应用实现全面远程化的过渡&#xff0c;在汽车行业&#…

C# 回文链表

234 回文链表 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true 示例 2&#xff1a; 输入&…

刷题笔记 day6

力扣 57 和为s的两个整数 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {vector<int> v;int i 0 , j nums.size()-1;while(i < j){if(nums[i] nums[j] > target){--j;}else if(nums[i] nums[j] < target){i…

MMDeploy安装、python API测试及C++推理

服务器配置如下&#xff1a; Cuda版本&#xff1a;11.1 Cudnn版本&#xff1a;8.2.0 显卡版本&#xff1a;RTX3090 使用转换脚本将.pth模型转换为ONNX格式 python mmdeploy/tools/deploy.py \mmdeploy/configs/mmdet/detection/detection_onnxruntime_dynamic.py \mmdetect…

解决Win11右键菜单问题

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; 程序日常 ✨特色专栏&…

【企业方案】如何在海量数据中找到热点Key(附JdHotKey解决方案)

文章目录 1. 概述2. 热点Key问题分析3. 解决方案3.2 滑动窗口3.2 京东毫秒级热Key探测框架3.2.1 JdHotKey使用教程3.2.2 JdHotKey常用API 1. 概述 如何在海量数据找到热点Key&#xff1f;&#xff1f;&#xff1f;这时候难免有人回答“这不简单&#xff0c;在同一秒内访问达到…

使用IDEA操作Mysql数据库

idea中自带了关于数据库的连接 首先要确保你的MySQL正在运行中 打开idea找到database&#xff08; view —> Tool Windows —> database&#xff09;&#xff0c;大家也可以定个快捷键&#xff0c;方便以后日常操作 就是这个样子&#xff0c;然后点加号 然后就可以编写执…

Mac提示文件:已损坏,无法打开。你应该把它移到废纸篓

文章目录 一、电脑信息二、打开任何来源设置三、更改应用程序拓展属性 一、电脑信息 我的是新版的Venture 13的系统。UI改的比较多。与之前的配置还是有很大的区别的。 打开下载的软件&#xff0c;显示已经损坏&#xff0c;打不开。抛开软件本身的问题外&#xff0c;一般是Ma…

【C语言学习】C语言的基础数据类型

一、数据类型 1.整型 short(短整型) int&#xff08;整型 long&#xff08;长整型&#xff09; long long&#xff08;长整型&#xff09;2.浮点型 float&#xff08;单精度型&#xff09; double&#xff08;双精度型&#xff09; long double3.字符类型 char…

【MMCV】mmpretrain/mmclassification概览、环境安装与验证

概览 MMPretrain 是一个全新升级的预训练开源算法框架,旨在提供各种强大的预训练主干网络, 并支持了不同的预训练策略。MMPretrain 源自著名的开源项目 MMClassification 和 MMSelfSup,并开发了许多令人兴奋的新功能。 目前,预训练阶段对于视觉识别至关重要,凭借丰富而强…

Android 性能调优之bitmap的优化

背景 Android开发中&#xff0c;加载图片过多、过大很容易引起OutOfMemoryError异常&#xff0c;即我们常见的内存溢出。因为Android对单个应用施加内存限制&#xff0c;默认分配的内存只有几M&#xff08;具体视不同系统而定&#xff09;。而载入的图片如果是JPG之类的压缩格…

Java POI 百万规模数据的导入和导出

目录 1、百万数据导入1.1 需求分析1.2 思路分析1.3 代码实现1.3.1 步骤分析1.3.2 自定义处理器1.3.3 自定义解析1.3.4 测试 2、百万数据导出2.1、概述2.2、解决方案分析2.3、原理分析2.4、百万数据的导出2.4.1、模拟数据2.4.2、思路分析2.4.3、代码实现2.4.4、测试结果 1、百万…

面试题:请说下什么是重绘和重排(回流)?他们的区别是什么?

答&#xff1a; ● 第一次渲染 ○ html结构 解析为 dom树 ○ css样式 解析为 样式规则 ○ dom树 和 样式规则 匹配下&#xff0c;生成渲染树&#xff01; ○ 接下来就是重排&#xff1a;根据渲染树&#xff0c;得到每个盒子的几何信息&#xff08;大小位置&#xff09; ○ 最后…

html纯前端压缩图片神器,js压缩图片保持原有像素,html图片压缩自定义大小,html/js实现图片压缩

前言 纯前端实现&#xff0c;关键使用image和canvas容器 使用jquery和layui方便简写 可自定义压缩质量、缩放大小、图片类型 打开index.html即可使用 效果 实现&#xff1a;https://download.csdn.net/download/weixin_43992507/88158384