欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用java代码调用JS代码运行在shell中

程序员文章站 2022-06-07 13:26:23
...

使用java代码调用JS代码运行在shell中

准备java代码

[root@Bing-Data-node2 javascript]# vim RunJavaScriptFile.java 
import java.io.FileReader;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class RunJavaScriptFile {
  public static void main(String[] args) {
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("js");
    try {
      // 需要执行js 代码文件名称
      FileReader reader = new FileReader(args[0]);
      // 运行js
      engine.eval(reader);
      reader.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

准备js代码

[root@Bing-Data-node2 javascript]# vim testFile.js 
r="red">,c]]=
function add(a, b,d) {
    c = a + b + d;
    return c;
}

result = add (10, 10, 2000);
print ('js执行结果 = ' + result);
~

编译java

javac RunJavaScriptFile.java

执行java 代码 ,在java代码中勾起JS 进行运行

java RunJavaScriptFile + js文件名称

查看结果

[root@Bing-Data-node2 javascript]# ls
RunJavaScriptFile.java  testFile.js
[root@Bing-Data-node2 javascript]# javac RunJavaScriptFile.java 
[root@Bing-Data-node2 javascript]# ls
RunJavaScriptFile.class  RunJavaScriptFile.java  testFile.js
[root@Bing-Data-node2 javascript]# java RunJavaScriptFile
java.lang.ArrayIndexOutOfBoundsException: 0
        at RunJavaScriptFile.main(RunJavaScriptFile.java:12)
[root@Bing-Data-node2 javascript]# 
[root@Bing-Data-node2 javascript]# java RunJavaScriptFile testFile.js
js执行结果 = 2020
[root@Bing-Data-node2 javascript]# 

好用!简单!不用安装nodejs环境!

相关标签: java