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

 

最新文章

  1. iOS开发之Bug(持续更新)
  2. 新浪微博客户端(59)-hitTest withEvent方法的使用说明
  3. 导航VC的左右item代码
  4. javascript中字符串常用操作总结、JS字符串操作大全
  5. *[codility]MaxDoubleSliceSum
  6. 建立Go工作环境
  7. Recipes — Bottle 0.13-dev documentation
  8. mysql的并发处理机制_上篇
  9. echarts饼图点击事件
  10. 深度解密Go语言之关于 interface 的10个问题
  11. Python档案袋( Json、pickle、加密与解密)
  12. 微服务架构:Eureka参数配置项详解
  13. CodeForces Round #549 Div.2
  14. FPM六:接五,跳转到明细
  15. 网络流量状态命令总结 (含notp安装)
  16. MIPI接口资料汇总(精)
  17. [Oracle][Partition][Controlfile]Partition 操作是否和 Controlfile有关?
  18. UVALive 6916 Punching Robot dp
  19. 最长公共子序列(POJ1458)
  20. [LeetCode] 176. Second Highest Salary_Easy tag: SQL

热门文章

  1. SpringBoot AOP示例
  2. IE10下阿里旺旺无法快速登录解决办法
  3. Standard 1.1.x VM与Standard VM的区别
  4. Coundn&#39;t load memtrack module (No such file or directory)
  5. Binary Differences
  6. 使用MouseWithoutBordersSetup共享鼠标键盘教程
  7. Forms and Reports Developer 10g Certified on Windows 10 for EBS 12.x
  8. 【scala】IO
  9. git远程分支回退
  10. 【CSAPP】三、程序的机器级表示