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);
相关文章
|
3天前
|
JavaScript 前端开发 Python
用python执行js代码:PyExecJS库
文章讲述了如何使用PyExecJS库在Python环境中执行JavaScript代码,并提供了安装指南和示例代码。
22 1
用python执行js代码:PyExecJS库
|
10天前
|
设计模式 Java
Java设计模式:组合模式的介绍及代码演示
组合模式是一种结构型设计模式,用于将多个对象组织成树形结构,并统一处理所有对象。例如,统计公司总人数时,可先统计各部门人数再求和。该模式包括一个通用接口、表示节点的类及其实现类。通过树形结构和节点的通用方法,组合模式使程序更易扩展和维护。
Java设计模式:组合模式的介绍及代码演示
|
1天前
|
Java API 开发者
探索Java中的Lambda表达式:简洁与强大的代码实践
本文深入探讨Java中Lambda表达式的定义、用法及优势,通过实例展示其如何简化代码、提升可读性,并强调在使用中需注意的兼容性和效率问题。Lambda作为Java 8的亮点功能,不仅优化了集合操作,还促进了函数式编程范式的应用,为开发者提供了更灵活的编码方式。
|
1天前
|
JavaScript 前端开发 Python
python执行js代码
本文档详细介绍如何安装Node.js环境及PyExecJS库,并提供示例代码展示其功能。首先,通过指定链接安装Node.js,安装完毕后可在命令行中输入`node --version`来验证安装是否成功。接着,使用`pip install PyExecJS`安装PyExecJS库,该库允许Python程序执行JavaScript代码。文档还提供了多个示例代码,展示了如何在Python环境中执行和编译JavaScript代码,并可以选择特定的JavaScript运行时环境,如Node.js或JScript。最后,通过具体案例展示了PyExecJS的功能与使用方法。
10 3
|
1天前
|
Java Linux Python
Linux环境下 代码java调用python出错
Linux环境下 代码java调用python出错
12 3
|
2天前
|
算法 Java
java 概率抽奖代码实现
java 概率抽奖代码实现
|
10天前
|
Java 程序员 API
Java中的Lambda表达式:简化代码的秘密武器
在Java 8中引入的Lambda表达式是一种强大的编程工具,它可以显著简化代码,提高可读性。本文将介绍Lambda表达式的基本概念、优势以及在实际开发中的应用。通过具体示例,您将了解如何使用Lambda表达式来简化集合操作、线程编程和函数式编程。让我们一起探索这一革命性的特性,看看它是如何改变Java编程方式的。
22 4
|
10天前
|
Java 开发者
探索Java中的Lambda表达式:简化你的代码
【8月更文挑战第49天】在Java 8的发布中,Lambda表达式无疑是最令人兴奋的新特性之一。它不仅为Java开发者提供了一种更加简洁、灵活的编程方式,而且还极大地提高了代码的可读性和开发效率。本文将通过实际代码示例,展示如何利用Lambda表达式优化和重构Java代码,让你的编程之旅更加轻松愉快。
|
10天前
|
JavaScript
网站内容禁止复制的js代码
网站内容禁止复制的js代码
|
13天前
|
Java 开发者
探索Java中的Lambda表达式:简化代码,提升效率
【9月更文挑战第14天】本文旨在揭示Java 8中引入的Lambda表达式如何革新了我们编写和管理代码的方式。通过简洁明了的语言和直观的代码示例,我们将一起走进Lambda表达式的世界,了解其基本概念、语法结构以及在实际编程中的应用。文章不仅会展示Lambda表达式的魅力所在,还会指导读者如何在日常工作中有效利用这一特性,以提高编码效率和程序可读性。