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 
    执行结果
     



  • 相关阅读:
    006_01XML简介
    005_01文档对象模型DOM
    004_01浏览器对象模型BOM
    SpringBoot的学习【4.快速实现一个SpringBoo的应用】
    SpringBoot的学习【3.HelloWorld配置细节】
    年中总结
    由一次报错引发的对于Spring创建对象的理解
    SpringBoot的学习【2.分析HelloWorld的依赖】
    SpringBoot的学习【1.初学之HelloWorld】
    IllegalStateException
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/7290013.html
Copyright © 2011-2022 走看看