jdk1.8引入了js引擎功能,可以在命令行下运行js交互程序:

在jdk11之后,这个功能又去掉了。

如下代码,是一个通过js调起计算器的示例。

javascript代码

function mainOutput() {var x = java.lang.Runtime.getRuntime().exec("calc.exe")
}var a = mainOutput()

java代码

package org.example.jsengine;import javax.script.*;public class JavaScriptTest {public static void main(String[] args) {String url = "conf/test.js";ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");Bindings bindings = engine.getBindings(ScriptContext.ENGINE_SCOPE);String cmd = String.format("load(\"%s\")", url);try {engine.eval(cmd, bindings);} catch (ScriptException e) {throw new RuntimeException(e);}}
}

运行结果:

这种调用,一般而言意义不是很大,因为跨语言了,数据类型很难做到一一对应,就算法而言,它不应该是某一种语言的专利,只要明白了算法的思路,什么语言都可以实现,没必要跨语言调用。

上面的示例,需要在jdk1.8环境中运行,如果是jdk11,就运行失败,所以这种跨语言调用并不推荐。

java调用js示例相关推荐

  1. android java 调用js,Android中Java和JavaScript交互实例

    Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本.本文将介绍如何实现Java代码和Javascript代码的相互调用. 如 ...

  2. java 调用 js性能_太快了,太变态了:什么会影响Java中的方法调用性能?

    java 调用 js性能 那么这是怎么回事? 让我们从一个简短的故事开始. 几周前,我提议对Java核心libs邮件列表进行更改 ,以覆盖当前final一些方法. 这刺激了一些讨论主题-其中之一是其中 ...

  3. android java 调用js_android WebApp 集成方式怎么使用java调用js

    WebAPP集成,本地打包,有两种方式java js通信 1.DCloud插件模式,参考SDK DEMO的H5Plugin, Java:继承StandardFeature写接口. public cla ...

  4. Java调用JS,JS调用JAVA

    JAVA 调用 JS //Java端 //带参数的函数调用 final String exes = "cc.Global.setEcADVal('"+ var1 + "' ...

  5. GeoJSON转EsriJSON,Java调用js库实现

    对于arcgis对象与geojson的转换,Esri官方有现成的实现,不过是基于js的,对应的github如下: https://github.com/Esri/arcgis-to-geojson-u ...

  6. Java调用exe示例

    Java调用exe String cmd = "D:\QQ\Bin\QQ.exe";try {//执行exe cmd可以为字符串(exe存放路径)也可为数组,调用exe时需要传入参 ...

  7. java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】

    本文实例讲述了MongoDB增删查改操作.分享给大家供大家参考,具体如下: MongoDB自带了一个JavaScript Shell,所以在其中使用js语法是可以的. Insert操作: 单条插入 v ...

  8. Java调用js方法

    js函数保存在String字符串中 package com.netease.qiyu.test.datastageservice.service.impl;import com.netease.qiy ...

  9. java调用js匿名函数参数,js匿名函数作为函数参数详解

    由衷的感叹,js真是烦. 学到现在,渐渐理解了什么是:语言都是通用的,没有好不好,只有擅长不擅长. 继承,多态,甚至指针,c能实现,c++,java有,javascript(和java是雷锋和雷峰塔的 ...

最新文章

  1. JavaScript replace() 方法
  2. Struts2学习第二天——动态方法调用
  3. Swiper使用心得
  4. ssh免密码登陆设置
  5. C#坏习惯:通过不好的例子学习如何制作好的代码——第4部分
  6. 1. C++基础知识学习及其深入理解(面向对象部分还没学) -- 课程1完成
  7. java jvm 查看内存_JVM内存状况查看方法和分析工具(下)
  8. 《我也能做CTO之程序员职业规划》之四:直线定律
  9. wps解密excel表格xlsx文件,excel表格xlsx权限密码多少?
  10. 国开电大 财务报表分析 形考任务
  11. 问题解决--npm install 安装依赖一直失败
  12. -bash: unzip: 未找到命令
  13. vue-cli-service build 环境设置
  14. xnote1.5——WebShell
  15. 2020-11-28画图上的最大值点,和零基准线
  16. linux 打开相机工具cheese/guvcview
  17. nrf24l01无线通信模块与51单片机工作原理
  18. 拓扑数据分析在机器学习中的应用
  19. Hdu 5172 GTY's gay friends
  20. 放弃FastJson!一篇就够,Jackson的功能原来如此之牛(万字干货)

热门文章

  1. 效果图云渲染出现噪点怎么办?
  2. 中小企业信息化“四”字诀
  3. 使用CSS定义一个和屏幕宽度一样正方形容器
  4. qt编写网易云界面(8)----专属定制界面
  5. ssh xm 工具_linux下远程桌面连接工具xmanager
  6. 小米路由器7000 docker怎么安装迅雷?
  7. Redis持久化----RDB和AOF 的区别
  8. 面向对象分析和设计(OOA,OOD,OOP,OOT)
  9. android 图片叠加效果
  10. 找工作的小技巧(雕虫小技),刚参加工作的小伙伴可以看看