zoukankan      html  css  js  c++  java
  • java 执行JavaScript 以及容器化的问题

    1. 可选方案
     
      a. jdk 6 开始内置的Rhino 引擎
      b. jdk8 替换的nashorn (性能高,对于ECMA 支持更好)
      c. java 版的nodejs vertx.io
     
    2. 实践操作
    public static void main(String[] args) {
            ScriptEngineManager manager = new ScriptEngineManager();
            ScriptEngine engine = manager.getEngineByName("nashorn");
            try {
                int value=2;
                SimpleBindings bind=new SimpleBindings();
                SimpleBindings bind2=new SimpleBindings();
                SimpleBindings bind3=new SimpleBindings();
                bind.put("点数", value);
                bind2.put("a", value);
                bind2.put("b", value);
                bind3.put("a1", value+1);
                bind3.put("b1", value+2);
                 System.out.println(engine.eval("点数<50?50:Math.ceil(56/50)*50",bind));
                System.out.println(engine.eval("demosum=function(a,b){return a+b}; demosum(a,b);",bind2));    // 定义方法,并调用支持参数绑定
                System.out.println(engine.eval("(function(a1,b1){function demosub(a,b){ return a+b;}return demosub(a1,b1)})(a1,b1)",bind3));    // 使用js 立即执行函数
              } catch (ScriptException e) {
                e.printStackTrace();
            }
        }
     
    3. docker 容器处理
     
     docker 容器实践有一个原则就是容器的镜像要尽可能的小
    一般大家会选择使用 alpine linux 发行版本
    对于Dockerfile 如下:
    FROM frolvlad/alpine-oraclejdk8:full
    VOLUME /tmp
    ADD demo.class demo.class
    RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","app"]
     
    注意镜像的tag 选择使用 full 
    执行结果
     



  • 相关阅读:
    关于页面跳转
    javascript之继承
    ubuntu+mysql+php+apache2+wordpress建站全记录
    Vue双向绑定原理解析
    Excel导入
    Excel文件下载(导出)
    IDEA创建Activiti工作流(集成的方式,生成表)
    git基本操作
    git中分支操作
    整合dubbo的依赖
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/7290013.html
Copyright © 2011-2022 走看看