首页 > 编程语言 >JAVA执行es6脚本

JAVA执行es6脚本

时间:2023-03-06 13:56:08浏览次数:37  
标签:脚本 es6 System JAVA BigDecimal BizImp js var new

public static void main(String[] args){
        System.setProperty(ClientLogger.CLIENT_LOG_LEVEL,"OFF");
        //SpringApplication.run(SrmSettleAccountApplication.class, args);
        try {
            System.out.println(Thread.currentThread().getName() + "===>main-");
            ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
            ScriptEngine engine = scriptEngineManager.getEngineByExtension("js");
            engine.eval(scriptCode());
        }catch (Exception e) {
            e.printStackTrace();
        }
    }


    static String scriptCode() throws Exception {
        String file = "/Users/yangyb/node/global_modules/bin/app.js";
        String script = StreamUtils.copyToString(new FileInputStream(new File(file)), Charset.defaultCharset());
        System.out.println(script);
        return script;


    }

public class BizImp implements Biz {

public BizImp() {
}

public void a(){
System.out.println(Thread.currentThread().getName() + "===>a-");

try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}

public static void b(){
System.out.println(Thread.currentThread().getName() + "===>b-");
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}

}
a.js
module.exports = 'Hello World!';

b.js
var msg = require('./a.js');
var BizImp = Java.type('org.srm.settleaccount.BizImp');
print("logInfo:", msg);
var BigDecimal = Java.type('java.math.BigDecimal');
function process(){
var amount = 1;
var percentage=1;
var result = new BigDecimal(amount).multiply(new BigDecimal(percentage)).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_EVEN);
print(result);
new BizImp().a();
BizImp.b();
print("say:");
}

process();

 

./browserify demo/b.js -o app.js

标签:脚本,es6,System,JAVA,BigDecimal,BizImp,js,var,new
From: https://www.cnblogs.com/gstsyyb/p/17183571.html

相关文章

  • Java 合并多个碎片文件到一个文件,也可以直接使用linux cat命名
    Java合并多个碎片文件到一个文件,也可以直接使用linuxcat命名linuxcat命令cat*.zip.*>out.zipjava工具使用方式#编译javacCombineFile.java#执行javaComb......
  • centos7.9系统禁用selinux脚本
    临时关闭setenforcepermissive永久关闭配置文件路径/etc/sysconfig/selinux修改配置项SELINUX=enforcing为SELINUX=disabledsed-i's/SELINUX=enforcing/'SEL......
  • JavaScript:Class.method 与 Class.prototype.method
    以下两个声明有什么区别?Class.method=function(){/*code*/}Class.prototype.method=function(){/*codeusingthis.values*/}把第一条语句看成......
  • 使用navicat将oracle的sql脚本转换为mysql的sql脚本
    1.工具:navicat16(其他版本未测试,但过程应该差不多)2.准备两个数据库,oracle数据库和mysql数据库,(mysql数据库是空数据库,用于保存oracle中的数据)3.点击工具->数据传输  ......
  • JavaWeb——Servlet
      JDBC也是JavaEE的规范之一,其实也是接口。快速入门  这个jar包的依赖范围必须写成provided(在编译环境和测试环境有效,在运行环境无效),不然就会报错。这样以后打......
  • 远程服务器安装java
    Step1:java安装包下载下载网址:https://www.oracle.com/java/technologies/downloads/Step2:在服务器端新建文件夹,上传java安装包并解压新建文件夹:"/usr/java"(可更改)......
  • java--对象内存图
               ......
  • Python、C++、Swift或任何其他语言会取代Java吗?为什么?
    很难预测Python,C++,Swift或任何其他编程语言是否会取代Java作为最受欢迎的语言,但在不久的将来不太可能.以下是一些原因:受欢迎程度并建立的用法:Java已经存在了25年以上,并......
  • DVWA系列4:XSS 跨站脚本攻击之 DOM型 和 反射型
    DVWA系列4:XSS跨站脚本攻击之DOM型和反射型前言跨站脚本攻击(即CorssSiteScript,为了不与CSS混淆被称为XSS)是一种较为常见的攻击手段。主要分为三种类型:DOM型,反......
  • 初学JAVA
    简单学习一下java的语法(搬菜鸟教程)。 java基础语法类:类是一个模板,它描述一类对象的行为和状态。方法:方法就是行为,一个类可以有很多方法。对象:对象是类的一个实例,有状......