java运行js代码 JDK1.8中如何用ScriptEngine动态执行JS
程序员文章站
2022-03-04 11:13:44
...
文章目录
前言
jdk1.6开始就提供了动态脚本语言诸如JavaScript动态的支持:”ScriptEngine“。
ScriptEngine功能强大,基本能实现笔者所能想到的Java与JavaScript交互的需求。而且十分的方便简洁。jdk1.8又对ScriptEngine接口进行了一定改变,因此,在jdk1.8能运行的代码,在1.6中可能会报错,反之亦然。
一、ScriptEngine是什么?
使用Java自带的ScriptEngine可以说是最完美的Java动态执行代码方案之一(不考虑代码热更新等场景),关于ScriptEngine网上有大量资料可供参考,这里就不附参考资料了,简单提供下一个使用JS Engine的例子:
二、使用步骤
1.引入库
代码如下(示例):
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings('ignore') import ssl ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据
代码如下(示例):
data = pd.read_csv( 'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv') print(data.head())
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
//声明是什么类型的脚本
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
//2编写js方法体 或者从文件中获取
//Resource rnavJs = new ClassPathResource("a.js");
File file = new File("D:\\a.js");
engine.eval(new FileReader(file));
//engine.eval("function getTest(){return 520;}");
//3执行js脚本。
Invocable invocable = (Invocable) engine;
Object getTest = invocable.invokeFunction("getTest");
System.out.println(getTest);