关于java代码中执行js脚本
应用场景:java语言是静态语言,执行时需要预编译。所以在一些需求变换比较频繁的时候使用起来就不是特别方便了。并且本人在用数据库的存储过程的时候也遇到了每个客户的需求不一致,导致需要频繁的修改存储过程里面的代码,所以想着有什么方法能有解决这个问题。经过本人找寻资料总结代码如下:
一、先编写一个js脚本信息
function encodeInp(input){var s="js文件输出:"+input;return s;
}
二、首先要创建一个js函数对应的接口,来映射js函数
public interface JSMethods {String encodeInp(String input);}
三、加载js文件,并且将文件映射到接口上
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.io.FileNotFoundException;
import java.io.FileReader;/*** @author lihao* @create 2022-08-30 9:47* @desc**/
public class JavaScriptProvider<T> {public T loadJs(String jsName,Class<T> clazz) throws FileNotFoundException, ScriptException {//创建一个脚本引擎管理器ScriptEngineManager manager = new ScriptEngineManager();//获取一个指定的名称的脚本管理器ScriptEngine engine = manager.getEngineByName("js");//获取js文件所在的目录的路径String path = JavaScriptProvider.class.getResource("").getPath()+"/js/";//engine.eval(new FileReader(path+jsName+".js"));engine.eval(new FileReader(jsName));//从脚本引擎中返回一个给定接口的实现Invocable invocable = (Invocable) engine;return invocable.getInterface(clazz);}public static void main(String[] args) {try {JavaScriptProvider<JSMethods> jsProvider = new JavaScriptProvider<>();JSMethods jsMethods = jsProvider.loadJs("C:\\Users\\Administrator\\Desktop\\config.js",JSMethods.class);System.out.println(jsMethods.encodeInp("123"));} catch (FileNotFoundException e) {e.printStackTrace();} catch (ScriptException e) {e.printStackTrace();}}}
运行结果:
关于java代码中执行js脚本相关推荐
- php中脚本代码开始,从PHP代码中执行shell脚本
我想要做的就是使用PHP来执行youtube-dl -x --audio-format mp3 "token"并获得以下参数JSON:从PHP代码中执行shell脚本 状态(错误= ...
- Selenium——python中执行js脚本
import selenium from selenium import webdriver from selenium.webdriver.common.by import By from time ...
- 如何在浏览器中执行js脚本
方式1:F12打开调试工具,利用控制台运行JS脚本 方式2: Chrome snippets 小脚本 我们也可以在 Chrome 浏览器中创建一个脚本来执行,在开发者工具中点击 Sources 面板, ...
- java代码中执行sql报错:java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字
最近写了特别多的数据库同步接口,需要在java程序中拼接大段的sql,然后再提交执行,出现了很多次ORA-00923错误,都有点见怪不怪了. 比如下面这段代码,在执行 db.execute(inser ...
- 如何在JAVA代码中执行 exec master..xp_cmdshell @cmd // 当作SQL语句调用就成了 或者调用 Runtime.getRuntime().exec
例如: //package FS; import java.io.IOException; import java.sql.*; public class BCP { static Connecti ...
- 在.Net中执行js
利用Noesis.Javascript开源组件可以做到在.net中执行js脚本,同时js脚本也能调用C#函数.这个组件的获得方式:在NuGet中输入搜索"Noesis"就能找到. ...
- js 中 java 代码_在js中嵌套java代码
jsp中有时候在js中操作某些java后台传递过来的数据逻辑比较复杂,比如list内容的遍历,可以直接在页面上添加java脚本来执行内容,代码如下: //在js中插入java代码操作 //取出java ...
- Java 执行 JS 脚本工具
Java 执行 JS 脚本工具 用途:为了便于系统扩展,提供了 JS 脚本的功能,可以通过在系统中执行脚本来获得更复杂的功能. 例如:系统提供了一个接口,这个接口不必非的有实现类,而是可以通过JS来实 ...
- selenium webdriver中执行js(java)
在代码中import org.openqa.selenium.JavascriptExecutor;就可以使用executeScript.executeAsyncScript这两个方法了 execut ...
最新文章
- 【 FPGA 】抢占式优先级译码器电路
- vue-ueditor 后端配置项没有正常加载_揭秘Gannt后端集成问题该如何解决
- Ubuntu 14.04 下 OF-Config安装
- 学习_你必须知道的.net2_第四章_一切从IL开始
- 验签传时间戳目的_不瞒你说:买来的海鸭蛋,一戳就流油,被中央台频频“曝光”,秘密终被解开...
- IOT [01] -- 物联网平台架构
- 一款优秀的开源SQL检查审核神器!再也不用担心写SQL出问题了
- 李一男再出发:电动车怎么做?
- 极客算法训练笔记(七),十大经典排序之归并排序,全网最详
- Linux 系统 /var/log/journal/ 垃圾日志清理
- 专访网秦创始人林宇:我曾每天戴20公斤手铐 生不如死
- 泰坦尼克号沉船数据分析与可视化、数据建模与分类预测【Python | 机器学习-Sklearn】
- 台式计算机usb接口无反应6,如何解决电脑的USB接口没反应,教您如何解决
- eclipse如何用Debug调试程序
- 太阳能板最大面积js
- C语⾔程序设计——算法的基本概念
- ps--蝙蝠侠大战超人
- 中国第一代白手起家创业者联想柳总等格局,附联想国企变民企史(赞赏后公号回复“联想格局”下载PDF典藏资料)
- 每日学术速递4.12
- win7设置WiFi热点部分问题解决方案