java 执行 javascript 代码

简介: java 执行 javascript 代码

package com.ruoyi.project.front.controller;

import java.math.BigDecimal;
import java.util.;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.utils.IdUtils;
import com.ruoyi.common.utils.StringUtils;
//import javafx.util.Pair;
//import org.apache.commons.lang3.tuple.ImmutablePair;
//import org.apache.commons.lang3.tuple.MutablePair;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.project.front.domain.
;
import com.ruoyi.project.front.service.;
import com.ruoyi.project.material.domain.QuoteMatSpecs;
import com.ruoyi.project.material.service.IQuoteMatSpecsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.
;
//代码效果参考:http://0791zd.com/bx/art_2251.html
import com.ruoyi.framework.web.domain.AjaxResult;

// groovy 动态执行
import groovy.lang.Binding;
import groovy.lang.GroovyShell;
//
import javax.script.;
import javax.servlet.http.HttpServletRequest;
public void test1()
{
ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
Compilable compilable = (Compilable) engine;
Bindings bindings = engine.createBindings();
String script = "(1+0.1
(F/100) T)P0";
CompiledScript JSFunction = null;
try {
JSFunction = compilable.compile(script);
bindings.put("F", 2.5);
bindings.put("T", 30);
bindings.put("A", 100);
bindings.put("P0", 100);
Object result = JSFunction.eval(bindings);
System.out.println(result);
} catch (ScriptException e) {
//e.printStackTrace();
}
}
//代码效果参考:http://0791zd.com/zx/art_1738.html

public  void test2()
    //示例一
    //GroovyShell shell = new GroovyShell();
    //Object result = shell.evaluate("(1+5)/2");
    //System.out.println(result);
    Binding binding = new Binding();
    binding.setVariable("F",2.5);
    binding.setVariable("T",30);
    binding.setVariable("A",100);
    binding.setVariable("P0",100);
    binding.setVariable("language", "Groovy");
    GroovyShell shell = new GroovyShell(binding);
    Object F1 =shell.evaluate("P1=(1+0.1 * (F/100) * T)*P0; return P1 ");
    System.out.println(F1);
    Object F2 =shell.evaluate("P1=P0*(0.055*0.20+1.0011)+A; return P1 ");
    System.out.println(F2);
相关文章
|
10天前
|
Java 程序员 API
Java中的Lambda表达式:简化你的代码
【7月更文挑战第10天】Lambda表达式,这一Java 8的闪亮特性,为开发者提供了一种更为简洁、灵活的编程方式。本文将探讨Lambda表达式如何优化代码结构,提升开发效率,以及在实际项目中应用的一些实例。我们将从基础语法入手,逐步深入到高级用法,最后讨论其性能影响,旨在帮助读者全面理解并有效利用Lambda表达式。
36 20
|
3天前
|
存储 缓存 JavaScript
|
11天前
|
监控 Java Maven
使用AspectJ实现Java代码的运行时织入
使用AspectJ实现Java代码的运行时织入
|
10天前
|
JavaScript
JS代码动态打印404页面源码
源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面
12 0
JS代码动态打印404页面源码
|
17天前
|
缓存 算法 安全
|
4天前
|
SQL Java 数据处理
实时计算 Flink版产品使用问题之使用MavenShadePlugin进行relocation并遇到只包含了Java代码而未包含Scala代码,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
9天前
|
Java 编译器 API
Java中的Lambda表达式:简化代码,提升性能
在Java 8中,Lambda表达式的引入为开发者提供了一种更加简洁、灵活的编程方式。本文将深入探讨Lambda表达式的概念、语法、使用场景及其在Java中的应用示例,帮助读者更好地理解和掌握这一强大工具,从而优化代码结构,提高开发效率。
|
13天前
|
监控 Java Maven
使用AspectJ实现Java代码的运行时织入
使用AspectJ实现Java代码的运行时织入
|
15天前
|
JavaScript
js 延时执行代码的最佳实践 —— 自定义 sleep 函数
js 延时执行代码的最佳实践 —— 自定义 sleep 函数
12 0
|
15天前
|
JavaScript 前端开发
js【深度解析】代码的执行顺序
js【深度解析】代码的执行顺序
18 0